Name and display-name rules.
The validation rules covering identifiers (slugs) and human-facing display names across Citadel.
What you saw
Citadel uses a few short codes to flag naming-rule violations. Each fires from a slightly different surface — pick the row that matches what you were doing.
- E-name_required — you submitted a form that needs a name (org display name, OAuth client name) without filling it in. Fix: type a name.
- E-display_name_too_long — your display name was longer than 80 characters. Fix: shorten it.
- E-too_short — your username (slug) was shorter than 2 characters.
- E-too_long — your username (slug) was longer than 39 characters.
- E-invalid_format — your username (slug) used characters outside the allowed set, or had bad start / end / consecutive-hyphen shape.
Two kinds of name
Citadel separates the identifier (the slug — appears in URLs and git remotes) from the display name (the human-facing label). Their rules differ because their jobs differ.
- Slugs are 3–39 characters, lowercase ASCII letters, digits, and hyphens only. Must start with a letter; must end with a letter or digit; no consecutive hyphens; not on Citadel's reserved-slug list. The full slug rules live on the slug-rules page.
- Display names are free-form Unicode up to 80 characters. Spaces, punctuation, and non-Latin scripts are all fine. Display names don't have to be unique — two orgs can share "Acme Corp." as long as their slugs differ.
Why these limits
Slug constraints come from the URL + git-remote round-trip — the character set has to land cleanly through every shell, browser, OAuth provider, and git server in the world. The 80-character display-name cap fits typical UI rows (avatar pill, table cell) without truncation; it isn't enforced for "looks", it's enforced because longer values regularly broke layouts.
What to try
- For a too-long slug, drop suffixes ("inc", "llc", "co") or use the org's short form. The display name carries the long version.
- For an invalid slug character, replace spaces with hyphens and strip punctuation: My Company, Inc. → my-company.
- For an empty name, fill the field — the form will not submit otherwise.