Skip to content

Available now

Rule catalogue ​

Every refusal and every warning from the bus carries a source and a stable rule id. This page lists all 104 of them, in the gateway's order of checks, with a page for each. It is generated from the gateway's code and the SOM 1.0 schemas it validates against, so it can't fall behind them.

Branch on the rule id, never on the violation's message text. How verdicts work: Verdicts and refusals.

sourceMeaning
schemaThe SOM 1.0 JSON Schema says no. The message is not valid SOM 1.0.
conformanceSOM 1.0 conformance rules that the schema cannot express.
sequenceSOM 1.0 conformance on snapshot order, checked against the story's previous snapshot.
policyThis bus's operational rules (identity, grants, size, idempotency, story ownership). Not a verdict of the SOM standard.

Schema rules are named <schema>.<keyword>: the schema that failed (envelope, or the payload's family) and the JSON Schema keyword. The part after the dot says what kind of rule failed.

Firewall and rate limits ​

RuleSourceOutcomeMeaning
quota.exceededpolicy429Your connection has used its daily request allowance.
rate.limitedpolicy429Too many requests: the bus asks you to slow down.
request.blockedpolicy403The bus's firewall refused the request.

Size ​

RuleSourceOutcomeMeaning
message.too_largepolicy413The request body is larger than the bus accepts.

Identity ​

RuleSourceOutcomeMeaning
principal.not_verifiedpolicy403The AWS role is registered but has not proved it is yours yet.
producer.not_registeredpolicy403Valid credentials, but the app has no grants on this bus yet.
producer.unauthenticatedpolicy401The bus could not establish who is calling.
tenant.mismatchpolicy403The workspace in the URL is not the one your credentials belong to.

JSON ​

RuleSourceOutcomeMeaning
message.not_jsonschema400The body is not JSON.

SOM envelope, version and payload ​

RuleSourceOutcomeMeaning
delivery-media-available.additionalPropertiesschema400A field the schema does not allow, in the delivery-media-available payload schema.
delivery-media-available.anyOfschema400None of the alternatives match, in the delivery-media-available payload schema.
delivery-media-available.constschema400A value that must be one fixed value, in the delivery-media-available payload schema.
delivery-media-available.format.date-timeschema400Not an RFC 3339 date-time, in the delivery-media-available payload schema.
delivery-media-available.format.uuidschema400Not a UUID, in the delivery-media-available payload schema.
delivery-media-available.patternschema400A string that does not match the required pattern, in the delivery-media-available payload schema.
delivery-media-available.requiredschema400A required field is missing, in the delivery-media-available payload schema.
delivery-media-available.typeschema400The wrong JSON type, in the delivery-media-available payload schema.
envelope.additionalPropertiesschema400A field the schema does not allow, in the SOM 1.0 envelope.
envelope.anyOfschema400None of the alternatives match, in the SOM 1.0 envelope.
envelope.enumschema400A value not in the allowed list, in the SOM 1.0 envelope.
envelope.false_schemaschema400A field SOM 1.0 explicitly forbids, in the SOM 1.0 envelope.
envelope.format.date-timeschema400Not an RFC 3339 date-time, in the SOM 1.0 envelope.
envelope.format.uuidschema400Not a UUID, in the SOM 1.0 envelope.
envelope.patternschema400A string that does not match the required pattern, in the SOM 1.0 envelope.
envelope.requiredschema400A required field is missing, in the SOM 1.0 envelope.
envelope.typeschema400The message, or a field of its envelope, has the wrong JSON type.
link-event.additionalPropertiesschema400A field the schema does not allow, in the link-event payload schema.
link-event.constschema400A value that must be one fixed value, in the link-event payload schema.
link-event.enumschema400A value not in the allowed list, in the link-event payload schema.
link-event.format.date-timeschema400Not an RFC 3339 date-time, in the link-event payload schema.
link-event.format.uuidschema400Not a UUID, in the link-event payload schema.
link-event.ifschema400A conditional rule failed: because of one field's value, another rule applies, in the link-event payload schema.
link-event.notschema400The value matches something the schema forbids, in the link-event payload schema.
link-event.requiredschema400A required field is missing, in the link-event payload schema.
link-event.typeschema400The wrong JSON type, in the link-event payload schema.
message_type.unknownpolicy400No SOM 1.0 schema for this message_type, on a bus that refuses those.
payload.message_type_mismatchpolicy400payload.message_type disagrees with the envelope's message_type.
payload.unvalidatedpolicytoleratedAccepted, but the payload was not checked: SOM 1.0 has no schema for this message_type.
skill-warning.additionalPropertiesschema400A field the schema does not allow, in the skill-warning payload schema.
skill-warning.constschema400A value that must be one fixed value, in the skill-warning payload schema.
skill-warning.enumschema400A value not in the allowed list, in the skill-warning payload schema.
skill-warning.false_schemaschema400A field SOM 1.0 explicitly forbids, in the skill-warning payload schema.
skill-warning.format.uuidschema400Not a UUID, in the skill-warning payload schema.
skill-warning.patternschema400A string that does not match the required pattern, in the skill-warning payload schema.
skill-warning.requiredschema400A required field is missing, in the skill-warning payload schema.
skill-warning.typeschema400The wrong JSON type, in the skill-warning payload schema.
som_version.pre_1_0conformance400som_version is from before SOM 1.0.
som_version.unsupported_majorpolicy400som_version is 2.0 or later.
story-context.additionalPropertiesschema400A field the schema does not allow, in the story-context payload schema.
story-context.anyOfschema400None of the alternatives match, in the story-context payload schema.
story-context.constschema400A value that must be one fixed value, in the story-context payload schema.
story-context.enumschema400A value not in the allowed list, in the story-context payload schema.
story-context.false_schemaschema400A field SOM 1.0 explicitly forbids, in the story-context payload schema.
story-context.format.date-timeschema400Not an RFC 3339 date-time, in the story-context payload schema.
story-context.format.urischema400Not a URI, in the story-context payload schema.
story-context.ifschema400A conditional rule failed: because of one field's value, another rule applies, in the story-context payload schema.
story-context.maximumschema400A number above its maximum, in the story-context payload schema.
story-context.maxLengthschema400A string longer than allowed, in the story-context payload schema.
story-context.minimumschema400A number below its minimum, in the story-context payload schema.
story-context.minLengthschema400A string shorter than allowed, in the story-context payload schema.
story-context.notschema400The value matches something the schema forbids, in the story-context payload schema.
story-context.patternschema400A string that does not match the required pattern, in the story-context payload schema.
story-context.requiredschema400A required field is missing, in the story-context payload schema.
story-context.typeschema400The wrong JSON type, in the story-context payload schema.
story-context.uniqueItemsschema400An array with repeated items, in the story-context payload schema.
system-audit.additionalPropertiesschema400A field the schema does not allow, in the system-audit payload schema.
system-audit.constschema400A value that must be one fixed value, in the system-audit payload schema.
system-audit.enumschema400A value not in the allowed list, in the system-audit payload schema.
system-audit.format.date-timeschema400Not an RFC 3339 date-time, in the system-audit payload schema.
system-audit.format.uuidschema400Not a UUID, in the system-audit payload schema.
system-audit.requiredschema400A required field is missing, in the system-audit payload schema.
system-audit.typeschema400The wrong JSON type, in the system-audit payload schema.
telling-event.additionalPropertiesschema400A field the schema does not allow, in the telling-event payload schema.
telling-event.anyOfschema400None of the alternatives match, in the telling-event payload schema.
telling-event.constschema400A value that must be one fixed value, in the telling-event payload schema.
telling-event.enumschema400A value not in the allowed list, in the telling-event payload schema.
telling-event.format.date-timeschema400Not an RFC 3339 date-time, in the telling-event payload schema.
telling-event.format.uuidschema400Not a UUID, in the telling-event payload schema.
telling-event.ifschema400A conditional rule failed: because of one field's value, another rule applies, in the telling-event payload schema.
telling-event.notschema400The value matches something the schema forbids, in the telling-event payload schema.
telling-event.patternschema400A string that does not match the required pattern, in the telling-event payload schema.
telling-event.requiredschema400A required field is missing, in the telling-event payload schema.
telling-event.typeschema400The wrong JSON type, in the telling-event payload schema.

Grants ​

RuleSourceOutcomeMeaning
producer.message_type_not_allowedpolicy403Your app may not publish this message_type.
producer.system_id_not_allowedpolicy403Your app may not publish as this originating_system.system_id.
registry.unavailablepolicy503The bus could not look up your app's grants just now.

Idempotency ​

RuleSourceOutcomeMeaning
message_id.reusedpolicy409This message_id was already used for a different message.
message.in_flightpolicy503An earlier attempt of this message was recorded moments ago and its publication is not confirmed yet.
message.supersededpolicy409This snapshot was recorded but never published, and its story has moved on since.

Snapshot sequence ​

RuleSourceOutcomeMeaning
asset.type_changedsequence409An asset_id changed its asset_type.
correlation_id.changedsequencetoleratedThe story arrived under a different correlation_id than before.
sequence_number.gapsequencetoleratedsequence_number jumped by more than one.
sequence_number.not_increasingsequence409sequence_number is not greater than the story's last accepted snapshot.
snapshot.assets_droppedsequence409An asset present in the last snapshot is missing now.
snapshot.members_missingsequence409A top-level member present in the last snapshot is missing now.
story_type.left_terminalsequence409The story was KILLED, SPIKED or ARCHIVED, and this snapshot says otherwise.
updated_at.backwardssequence409updated_at is earlier than the last accepted snapshot's.

Story ownership ​

RuleSourceOutcomeMeaning
story.not_ownerpolicytolerated, or 409 if the workspace choosesA system that does not own the story published a snapshot of it.

Commit ​

RuleSourceOutcomeMeaning
commit.contentionpolicy409Another writer updated the same story at the same moment, several times running.

Publish ​

RuleSourceOutcomeMeaning
bus.publish_failedpolicy503The bus could not publish the message; it was not delivered.

Pull API (consumers) ​

RuleSourceOutcomeMeaning
consumer.not_ownerpolicy403The consumer in the URL is not the connection your credentials belong to.
consumer.queue_unavailablepolicy503The bus could not reach your queue just now.
pull.bad_requestpolicy400The pull API request is malformed.
skills.unavailablepolicy503The bus could not read your executor's skill registrations just now.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.