Commit 10220a7
fix(rest): answer the engine's DUPLICATE_RECORD insert-conflict envelope with the structured 409 UNIQUE_VIOLATION body (#14544)
* test(rest): pin the 409 body for the engine's DUPLICATE_RECORD insert-conflict envelope
Red-first pins for the classifyDataError arm: UNIQUE_VIOLATION stays on
the wire, field is restored when the dialect named the column, the
curated sentence returns on error with the engine's sentence on
developerMessage, and no offending value reaches the body (the
driver-memory control). Changeset for @objectstack/rest.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yfqQh2dBgPAymYd7xipza
* fix(rest): answer the engine's DUPLICATE_RECORD insert-conflict envelope with the structured 409 UNIQUE_VIOLATION body
One arm in classifyDataError, placed with DELETE_RESTRICTED and
CONCURRENT_UPDATE ahead of the declared-status passthrough: the wire code
stays UNIQUE_VIOLATION with the producer's spelling on declaredCode, field
is restored when the dialect named the column, the curated end-user
sentence returns on error with the engine's sentence on developerMessage,
and no offending value reaches the body. Gated on the engine's envelope
(name and code), so a sandbox body speaking the registered code keeps
today's answer.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yfqQh2dBgPAymYd7xipza
* test(rest): type the raw-error filter in the parity pins so tsconfig.test.json compiles the file
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yfqQh2dBgPAymYd7xipza
* fix(rest): drop declaredCode from the DUPLICATE_RECORD arm's 409 body — a vocabulary member is not a demotion
Contract review on the card (reading B): DUPLICATE_RECORD is a
StandardErrorCode member, and ApiErrorSchema.declaredCode plus ADR-0112's
presence-means-demotion amendment define the field as the demoted spelling
of an UNREGISTERED code, so it stays absent here and the engine's spelling
stays in-process like every dialect code. Pins updated accordingly; the
§0 control that both codes parse as ErrorCode now states the reason.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yfqQh2dBgPAymYd7xipza
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent e27583e commit 10220a7
3 files changed
Lines changed: 585 additions & 0 deletions
File tree
- .changeset
- packages/rest/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
698 | 698 | | |
699 | 699 | | |
700 | 700 | | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
701 | 779 | | |
702 | 780 | | |
703 | 781 | | |
| |||
0 commit comments