Tenant invalid
ERR-P01-IDT-2003 - Tenant invalid
Section titled “ERR-P01-IDT-2003 - Tenant invalid”Summary
Section titled “Summary”The tenant slug on the register request resolves to no known tenant.
When this is raised
Section titled “When this is raised”- On
POST /v1/agent/register, the requestedtenantslug (defaulting topublicwhen omitted) matches no row in thetenanttable. - The agent is granted exactly one tenant membership at registration, so an unresolvable tenant aborts the whole registration.
What to do
Section titled “What to do”- Pass a
tenantslug that exists in this deployment, or omit the field to accept the defaultpublictenant. - If you believe the tenant should exist, an operator must seed it first.
Server-side cause
Section titled “Server-side cause”- Raised by:
packages/identity/src/service/register.ts-register(tenant resolution). - Guard:
if (!tenantRow) throw new RegisterError('tenant_invalid', \unknown tenant: ${tenantSlug}`); mapped toIDENTITY_ERR.tenant_invalid(422) inpackages/identity/src/router/register.ts`.
Example response
Section titled “Example response”{ "type": "https://citizenry.id/errors/ERR-P01-IDT-2003", "title": "Unprocessable", "status": 422, "code": "ERR-P01-IDT-2003", "message": "unknown tenant: staging", "method": "POST", "instance": "/v1/agent/register", "request_url": "https://api.citizenry.id/v1/agent/register", "timestamp": "2026-05-17T07:00:00.000Z"}Related codes
Section titled “Related codes”ERR-P01-IDT-2002- slug invalid.ERR-P01-IDT-3110- slug taken.
Changelog
Section titled “Changelog”- 0.1.0 - introduced.