Skip to content

Give the specification's JSON Builder error text with no sequence number - #74

Merged
jwrosewell merged 2 commits into
rcfrom
fix/json-builder-sequence-message
Nov 11, 2026
Merged

jwrosewell merged 2 commits into
rcfrom
fix/json-builder-sequence-message

Conversation

@jwrosewell

@jwrosewell jwrosewell commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Problem

James Rosewell's rule for the 11 November 2026 release is "The point of the release is consistency." When no Sequence Element has produced a sequence number, the JSON Builder fails with an error, and each language that has the error gave it its own wording. Node said "There is no sequence number. A Sequence Element needs to be placed before the JSON Builder Element in the Pipeline." (pipeline/fiftyone.pipeline.core/jsonbundler.js lines 73 and 74 on rc).

What the specification says

specifications#139, merged into rc as d72eb074, gives the exact text. json-builder.md at d72eb074, lines 120 to 142:

If no Sequence Element has produced a sequence number when the Element runs, the Element MUST fail with an error and MUST NOT set its JSON value. The error MUST carry the message below, which is the text every implementation gives, so that the message reads the same in every language and makes life easier for 51Degrees support.

The JSON Builder needs a sequence number. Place a Sequence Element before the JSON Builder in the Pipeline.

PHP names this Element the JSON Bundler, so PHP gives the same message with JSON Bundler in place of JSON Builder, reading "The JSON Bundler needs a sequence number. Place a Sequence Element before the JSON Bundler in the Pipeline." Nothing else differs. Where an implementation wraps the error in another, such as a Pipeline Configuration Exception that carries the first error as its cause, the error the caller reads carries the message.

The message is the whole text of the error. An implementation MUST NOT add anything to it, such as a link to documentation. A prefix that a language's error type writes in front of every error of that type when the error is shown, such as the type's name, is not part of the message.

What changed

Two commits, the test first (f654ea0) and then the message (a7bb064). Nothing else changes.

Tests and builds

What remains

specifications#139, which states the text, has merged into rc as d72eb074. The same text goes into the other languages in 51degrees-dotnet#135, 51degrees-java#104, 51degrees-python#101, 51degrees-php#69, 51degrees-go#100 and 51degrees-rust#383. Nothing else is outstanding here.

Every language gives the same text when no Sequence Element has produced a sequence number, as the JSON Builder page of the specification states.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant