Area: docs · sdk — docs · found via #611's follow-ups (PR body)
Expected: the SDK streaming docs describe when a stream can get the 400/404 of tenant resolution, so a client author knows whether their deployment is exposed to it.
Actual: both pages qualify it with a condition that does not hold. docs/src/content/docs/sdk/reference.md:59 and docs/src/content/docs/sdk/streaming.md:130 say the 4xx a stream raises itself are 400 for a missing table and, "when you send X-Tenant-ID", the 400/404 of tenant resolution. A request that sends no header resolves to tenant 0 (internal/api/router.go, requestTenant), so over a nested directory with no 0 folder it gets 404 unknown tenant: 0 — pinned by internal/api/pipes_test.go:109 ("no 0 folder" → 404, unknown tenant: 0). Since #611, removing a 0 folder also ends such a client's open stream and its reconnect gets the same 404.
Impact: a client author reading either page concludes they cannot see a tenant 404 because they never set the header, and writes no handling for the one status that is meant to stop a stream for good. The wording predates the multi-tenant work; it was accurate when tenant 0 always existed.
Scope: drop the X-Tenant-ID condition on both pages — the statuses come from tenant resolution whether or not the client names a tenant.
Related: #611, #583 (story 11 covers settings-directory.mdx, api.md and configuration.mdx, not the SDK pages), #576, #524
From #611's "Follow-ups" section (taitelee); story 11 does not cover the SDK pages. Validated by code-read against 93d80198 on 2026-09-25. Filed by the pm-triage routine.
Area: docs · sdk — docs · found via #611's follow-ups (PR body)
Expected: the SDK streaming docs describe when a stream can get the
400/404of tenant resolution, so a client author knows whether their deployment is exposed to it.Actual: both pages qualify it with a condition that does not hold.
docs/src/content/docs/sdk/reference.md:59anddocs/src/content/docs/sdk/streaming.md:130say the 4xx a stream raises itself are400for a missing table and, "when you sendX-Tenant-ID", the400/404of tenant resolution. A request that sends no header resolves to tenant0(internal/api/router.go,requestTenant), so over a nested directory with no0folder it gets404 unknown tenant: 0— pinned byinternal/api/pipes_test.go:109("no 0 folder" →404,unknown tenant: 0). Since #611, removing a0folder also ends such a client's open stream and its reconnect gets the same404.Impact: a client author reading either page concludes they cannot see a tenant
404because they never set the header, and writes no handling for the one status that is meant to stop a stream for good. The wording predates the multi-tenant work; it was accurate when tenant0always existed.Scope: drop the
X-Tenant-IDcondition on both pages — the statuses come from tenant resolution whether or not the client names a tenant.Related: #611, #583 (story 11 covers
settings-directory.mdx,api.mdandconfiguration.mdx, not the SDK pages), #576, #524From #611's "Follow-ups" section (taitelee); story 11 does not cover the SDK pages. Validated by code-read against
93d80198on 2026-09-25. Filed by the pm-triage routine.