Skip to content

fda cannot parse pipelines whose checkpoint fingerprint exceeds i64::MAX #6841

Description

@gz

Symptom

fda pipelines and fda status <pipeline> fail with Unable to parse the detailed response when any pipeline on the instance has a checkpoint whose fingerprint exceeds i64::MAX. One such checkpoint breaks listing every pipeline, because the list endpoint embeds storage_status_details.

Repro

Run any pipeline with storage and fault tolerance enabled until it writes a checkpoint whose random u64 fingerprint has the top bit set (half of them do), then run fda pipelines.

{"checkpoints": [{"fingerprint": 14128757731148314856, ...}]}

Cause

The circuit fingerprint is u64 (crates/feldera-types/src/checkpoint.rs:122) and the server serializes the full range. utoipa maps it to "type": "integer", "format": "int64", "minimum": 0 in openapi.json (CheckpointMetadata.fingerprint), and progenitor generates i64 from format: int64, so the client generated into fda refuses any value above i64::MAX.

Fix directions

  • Serialize the fingerprint as a string in the REST types, the usual JSON answer for 64-bit values; or
  • annotate the schema so generated clients use u64 (progenitor honors format: uint64).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions