Known issues
Defects we have reproduced in the UCP reference stack
Each row is a defect in a published artifact around the specification — an SDK, a sample,
the official conformance suite, our own golden server — with a command you can run, what the pinned spec
text expects, what the artifact does, and the status on each released cut. Rows are re-verified within
thirty days and carry a review date; a finding that was refuted is removed from this file rather than
labeled. Source of truth: conformance/ci/known_issues.json in the
repository, validated in CI.
10
open on a published cut
5
fixed on an upstream main
By artifact: golden-0825 1 · js-sdk 2 · official-conformance 1 · python-sdk 1 · samples-node 1 · samples-python 1 · ucp-schema 1 · ucp-spec 2. Spec pin cd78fb38
(2026-08-25). Latest re-verification 2026-09-11.
Machine-readable: known-issues.json.
KI-001 python-sdk generated pydantic models (schema constraints)
ucp-sdk 0.5.0 drops four constraint families the pinned 08-25 schemas carry: JWK conditional rules (5), C62 scale, the maxProperties family, discriminator array-retyping. Every published cut predates the fixes.
- Reproduce
python3 conformance/selfcheck/sdk_constraints_probe.pyexpected each pinned constraint rejects its negative payload
observed 4 families accept the negative payload at 0.5.0
- Status by cut
- open PyPI ucp-sdk 0.5.0 (tag v2026-08-25, b6f9b91c)
- fixed main 836b0228 — python-sdk#89 #91 #93 merged (836b0228); ledger G1
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G1
KI-002 js-sdk writeCompatibilityDiscoverySchemas / declarations generator
npm @ucp-js/sdk 0.5.1 ships the extends-stub twin of the merged #55 fix (maxProperties / extends / declarations): generated compatibility discovery schemas are incomplete at the published cut.
- Reproduce
npm view @ucp-js/sdk version && grep -n extends node_modules/@ucp-js/sdk/dist/schemas/*.d.tsexpected generated declarations carry the extends/maxProperties members
observed 0.5.1 lacks them; main has them
- Status by cut
- open npm 0.5.1
- fixed main 99572ca8 — js-sdk#63 merged 2026-09-07 (99572ca8); ledger G3
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G3
KI-003 js-sdk UcpDiscoveryProfileSchema
UcpDiscoveryProfileSchema models `capabilities` as an ARRAY; the spec (2026-04-08 and 2026-08-25) defines a record keyed by reverse-domain capability name whose values are arrays.
- Reproduce
node -e "const s=require('@ucp-js/sdk');console.log(JSON.stringify(s.UcpDiscoveryProfileSchema.shape.ucp.shape.capabilities._def.typeName))"expected ZodRecord (object keyed by capability name)
observed ZodArray at 0.5.1 and at main
- Status by cut
- open npm 0.5.1
- open main 44c448d
- Filed
- not yet filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G5
KI-004 ucp-schema definition selection (--def) and --schema-local-base
Crate 1.4.1 and the pinned 9b5c3206 crash (exit 134) on 08-25 def-selection patterns (#45/#46 class); the post-#66 head b52518f5 fixes the crash but regresses --schema-local-base (base segment doubled; A/B proven, old Valid / head rc 2).
- Reproduce
conformance/.vendor/ucp-schema/target/release/ucp-schema validate --def <08-25 def> <payload>expected Valid / Invalid verdict
observed exit 134 at 1.4.1 and 9b5c3206; rc 2 (path doubled) at b52518f5
- Status by cut
- open crate 1.4.1
- open 9b5c3206 (pinned)
- fixed main b52518f5 — ucp-schema#66 merged (b52518f5) fixes the crash; the --schema-local-base regression there is open (ledger G6, #72 pending)
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G6
KI-005 samples-python checkout_service / test helpers (bare ShippingDestination)
Fresh-run CI breaks (117/257 at the pinned 00333a80; 2 OrderTest 500s at 01755bcc): a helper builds a bare ShippingDestination and checkout_service.py:532 raises. Our #220 (retargeted to #218) fixes both.
- Reproduce
cd conformance/.vendor/samples/rest/python && uv run --group dev pytest -qexpected all tests OK
observed OrderTest cases 500 at services/checkout_service.py:532
- Status by cut
- open samples 00333a80 (pinned)
- open samples 01755bcc
- fixed conformance#96 (helpers) — conformance#96 merged (FanouZeng-TT) for the helper half; samples#220 open for the service half; ledger G10
- Filed
- Provenance
- origin shared · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G10
KI-006 samples-node production start path (npm start)
`npm start` fails: dist/index.js missing; `node dist/src/index.js` fails ERR_MODULE_NOT_FOUND on 37 extensionless imports. samples#58 was closed 2026-07-22 as 'Fixed by #139' without an import change.
- Reproduce
cd conformance/.vendor/samples/rest/nodejs && npm run build && npm startexpected server listens
observed dist/index.js missing; ERR_MODULE_NOT_FOUND
- Status by cut
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row R21
KI-007 official-conformance integration_test_utils / DEFAULT_UCP_VERSION
The official conformance suite has zero 2026-08-25 coverage: DEFAULT_UCP_VERSION="2026-04-08" (integration_test_utils.py:59), ucp-sdk==0.4.4 pin, HEAD predates the release.
- Reproduce
grep -n DEFAULT_UCP_VERSION conformance/.vendor/conformance/integration_test_utils.pyexpected a 2026-08-25 default or matrix
observed "2026-04-08" only
- Status by cut
- open conformance 016ecbc
- open conformance fdbdafd (pinned)
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row S4
KI-008 ucp-spec release tag v2026-04-08
The v2026-04-08 tag was re-pointed on 2026-09-09 (tag object ebac9d15 -> a25a4a24, #813 loyalty backport: +19 register MUSTs, +common/loyalty.json). Our lock pinned a2d8bf0b until the D2-15 re-pin of 2026-09-11 (decision 3); a release tag moving after publication is the upstream fact recorded here.
- Reproduce
python3 conformance/ci/sources_age.py --checkexpected tag v2026-04-08 == the locked commit (a25a4a24 since 2026-09-11)
observed sources-age: OK — all 4 pinned spec tag(s) still carry their locked identity (tag object + dereferenced commit); before the re-pin: TAG MOVED v2026-04-08 -> a25a4a24 (acknowledged)
- Status by cut
- open ucp tag v2026-04-08 @ a25a4a24
- fixed spck SOURCES.lock 2026-04-08 @ a25a4a24 (re-pinned 2026-09-11) — D2-15 (2026-09-11): SOURCES.lock.json 2026-04-08 commit a2d8bf0b -> a25a4a24, tag_move_observed -> tag_move_resolved; known_tag_moves.json entry retired; sources_age.py --check -> OK, no TAG MOVED; register 1875/1875 verified at the new pin; ledger R20
- Filed
- Provenance
- origin theirs · confidence high · re-verified 2026-09-11 · review by 2026-12-08 · ledger row R20
KI-009 ucp-spec signatures.md REPLAY-002 (payload byte fidelity)
REPLAY-002 requires byte-identical replay detection but the released text leaves canonicalisation vs raw-byte comparison ambiguous; golden-0825 implements the literal reading (seq_invariants I10 enforce; report mode for user-facing runs until F3-f is answered).
- Reproduce
python3 conformance/checks/golden_check_08_25.py --only REPLAY-002expected one unambiguous comparison rule
observed two defensible readings; golden records the literal one
- Status by cut
- open ucp cd78fb38 (pinned 2026-08-25)
- Filed
- Provenance
- origin shared · confidence medium · re-verified 2026-09-09 · review by 2026-12-08 · ledger row G13
KI-010 golden-0825 unknown-route error envelope
golden-0825 answers an unknown route with FastAPI's `{"detail":"Not Found"}` 404 instead of the UCP error envelope, and accepts unadvertised versions; fixed by C3 (D3-04) in Wave 0.
- Reproduce
PORT=8194 DB_DIR=$(mktemp -d) conformance/testbed/golden-0825/serve_golden_0825.sh && curl -s localhost:8194/nopeexpected UCP error envelope 404
observed {"detail":"Not Found"}
- Status by cut
- open golden-0825 @ f9cc470
- Filed
- not yet filed
- Provenance
- origin ours · confidence high · re-verified 2026-09-09 · review by 2026-12-08 · ledger row R23