Stop reporting a missing column as a missing table

FixSecurityService
Shipped
August 19, 2026 at 2:13 AM UTC
Author
Kamo
Commit
6715ca3

Four controllers each rewrote ANY message containing "does not exist" into "Database table X does not exist. Please run KamoInitializerApp to create the schema." That phrase is not specific to a missing table -- PostgreSQL says it for a missing column (42703) and a missing function (42883) too -- so the block replaced the one piece of information that identified the fault with a confident, wrong sentence. It cost a real misdiagnosis: every mortgage-market lead was failing on column "lead_id" does not exist, and /leads/new reported that the LEADS table was missing and the schema needed rebuilding. The schema was fine. The column name never reached anyone. The hint now comes from one place, SchemaErrorMessages, and is raised only for relation "..." does not exist -- the message that actually means the table is missing -- naming the relation the database named rather than a hard-coded guess. Everything else passes through untouched. Also adds JoinedInheritanceInsertSqlTest, which fails the build if an entity's INSERT returns a column belonging to a different table. That is the Hibernate 6.2 joined-inheritance defect behind the outage (fixed in kamo-shared-library 25140e0). It lives here, not next to the entities, because the library builds against Spring Boot 3.3.4 / Hibernate 6.5 while this service runs 3.1.5 / 6.2.13 -- and 6.5 does not have the bug, so the same guard placed in the library would pass while production kept failing.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing