Error Codes
Every diagnostic emitted by shaperail check has a stable code (SR001, SR050, …) and a permanent reference page on this site.
When shaperail check --json reports a diagnostic, the doc_url field points at the corresponding page below.
| Code | Severity | Summary |
|---|---|---|
| SR000 | error | YAML parse error |
| SR001 | error | resource name must not be empty |
| SR002 | error | version must be >= 1 |
| SR003 | error | schema is empty — must have at least one field |
| SR004 | error | schema has no primary key field |
| SR005 | error | schema has more than one primary key field |
| SR010 | error | field is type enum but declares no values |
| SR011 | error | non-enum field declares values list |
| SR012 | error | ref on non-uuid field |
| SR013 | error | ref value missing dot notation (expected resource.field) |
| SR014 | error | array field has no items type declared |
| SR015 | error | format attribute used on non-string field |
| SR016 | error | primary key field is neither generated nor required |
| SR020 | error | tenant_key references a field that is not type uuid |
| SR021 | error | tenant_key references a field not found in schema |
| SR030 | error | controller.before has an empty hook name |
| SR031 | error | controller.after has an empty hook name |
| SR032 | error | events list contains an empty event name |
| SR033 | error | jobs list contains an empty job name |
| SR035 | error | controller hook uses ‘wasm:’ prefix but provides no path |
| SR036 | error | controller hook WASM path does not end with ‘.wasm’ |
| SR040 | error | endpoint input/filter/search/sort references a field not in schema |
| SR041 | error | soft_delete declared but schema has no deleted_at field |
| SR050 | error | upload declared on an endpoint whose method is not POST, PATCH, or PUT |
| SR051 | error | upload field exists in schema but is not type file |
| SR052 | error | upload field not found in schema |
| SR053 | error | upload storage backend is not one of: local, s3, gcs, azure |
| SR054 | error | upload field is not listed in the endpoint input array |
| SR060 | error | belongs_to relation is missing required key field |
| SR061 | error | has_many or has_one relation is missing required foreign_key field |
| SR062 | error | relation key field not found in schema |
| SR063 | error | controller before/after list is empty |
| SR070 | error | index definition has no fields listed |
| SR071 | error | index references a field not found in schema |
| SR072 | error | index order must be ‘asc’ or ‘desc’ |
| SR073 | error | subscriber entry has an empty event pattern |
| SR074 | error | subscriber entry has an empty handler name |
| SR075 | error | non-convention endpoint has no handler declared |
| SR076 | error | array field has nested array items (not supported) |
| SR077 | error | array items type is enum but declares no values |
| SR078 | error | array items.format is only valid when items.type is string |
| SR079 | error | array items.ref requires items.type to be uuid |
| SR080 | error | array items.ref must use ‘resource.field’ dot notation |