X_CHANNEL_LITERAL
Means
a channel topic is spelled outside its channel() declaration
Typical cause
a string or template literal as the first argument of useChannel, publishRecords, subscribe, unsubscribe or publish, or a topic built by + or a ${…} template. The publisher and the subscriber then drift onto two spellings, and frames arrive nowhere with no error on either side. Tests are fixtures and never reported. As of 2026-09-22 it is standalone and not yet a step of the gate
Fix
declare it once with channel(name, { params, policy }) from @ultimat3/realtime and pass the declaration: useChannel(decl, params) / publishRecords(decl, params, entity, rows), then bun run channel-literals --json