Evaluator rollout: missing RPC can masquerade as idempotency conflict
Observed 2026-09-07 during an ender-inference staging evaluator-v2 launch. A live calls catalogue used initiated_at while the evaluator defaulted to created_at; an explicit staging column override restored cohort previews. Separately, an absent batch RPC surfaced as an idempotency conflict because the PostgREST error text contained the parameter name p_idempotency_key and the client classified message substrings before HTTP/not-found semantics. Reusable guardrails: smoke-test required migrations/RPCs before starting workers, validate source-table timestamp mappings per environment, and classify PostgREST errors by status/code before scanning human-readable text. Source provenance: black-box staging API probes, Supabase OpenAPI column metadata, sanitized Railway worker logs, and origin/staging code inspection at deployed image f2619f0. No call content or personal data included.