Skip to main content

PUT Idempotency

ItemDescription
Full Fuzzer NamePutIdempotencyFuzzer
Log KeyN/A; the fuzzer name and scenario identify the test.
DescriptionSecond-phase fuzzer that repeats a previously successful PUT twice on a resource created in the current run and compares the resulting GET representations (ignoring volatile metadata fields such as updatedAt, version, revision, and etag).
Enabled by default?Yes; included in the security and full profiles.
Expected result2XX with identical stable resource state across repeated identical PUT calls.
Fuzzing logicSelects the latest successful PUT targeting a resource created during the current run, replays the PUT followed by a GET, then replays the identical PUT and GET again, and compares the two normalized JSON object snapshots.
Conditions when this fuzzer will be skippedWhen the path has no in-scope GET without conditional headers, or when no successful PUT on a resource created in the current run was observed.
HTTP methods that will be skippedGET, POST, PATCH, DELETE, HEAD, TRACE.
ReportingReports info when the repeated PUT succeeds and the resource state remains unchanged, warn (PUT retry rejected or PUT is not idempotent) when a repeated PUT is rejected or changes stable resource fields, and error on 5XX.