miroir/notes/miroir-9dj.6.md
jedarden 819016df6f P2.6: Verify error mapping implementation already complete
All miroir_* error codes from plan §5 are implemented in
crates/miroir-core/src/api_error.rs with tests passing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 15:33:52 -04:00

1.3 KiB

P2.6 Error Mapping Verification

Task

Implement the error response shape from plan §5 and all miroir_* error codes.

Finding

The implementation was already complete in crates/miroir-core/src/api_error.rs.

Verification

Required Error Codes (all present)

  • miroir_primary_key_required
  • miroir_no_quorum
  • miroir_shard_unavailable
  • miroir_reserved_field
  • miroir_idempotency_key_reused
  • miroir_settings_version_stale
  • miroir_multi_alias_not_writable
  • miroir_jwt_invalid
  • miroir_jwt_scope_denied
  • miroir_invalid_auth

HTTP Status Code Mappings (matches plan §5)

  • 400: PrimaryKeyRequired, ReservedField
  • 401: JwtInvalid, InvalidAuth
  • 403: JwtScopeDenied
  • 409: IdempotencyKeyReused, MultiAliasNotWritable
  • 503: NoQuorum, ShardUnavailable, SettingsVersionStale

Tests

All 23 api_error tests pass:

  • Per-code JSON shape tests for each miroir_* code
  • Meilisearch-native error forwarding (preserved verbatim)
  • HTTP status code mapping verification
  • Round-trip serialization
  • Code string round-trip

Error Shape

{"message": "...", "code": "...", "type": "invalid_request|auth|internal|system", "link": "..."}

Matches Meilisearch format exactly.