A city’s asset-tagging service POSTs a new switch hostname to a Cisco inventory API and receives HTTP 409 Conflict because that name already exists. How should the consumer handle the response?
Select an answer to reveal the explanation.
Short Explanation
Think of a reserved parking spot that already has a car in it—you do not keep circling hoping the space magically empties. A 409 means the server refused the write because state already conflicts, so the app must read what is there and choose merge or abort.
Full Explanation
HTTP 409 Conflict signals that the request cannot be completed given the current resource state—most often a duplicate hostname, a version clash, or another uniqueness rule on the Cisco inventory API. For the city’s asset-tagging service, that is not a transient outage: the platform already holds a switch name the POST tried to create. Robust REST consumers therefore branch into a conflict handler that GETs (or otherwise reads) the current resource, compares identity and fields, and then either merges allowable differences, aborts the create, or escalates to an operator. That control flow keeps municipal inventory honest instead of pretending the write succeeded.
Applying the same exponential backoff used for HTTP 503 fails by concept because backoff assumes temporary unavailability. A 409 will keep returning while the conflicting name remains; spinning only amplifies load and never resolves the naming clash. Retrying the identical POST body in a tight loop fails for the same reason and can trip rate limits without ever producing a 201. Ignoring the status and continuing as if the create returned 201 Created fails because the consumer now believes it owns a hostname the API never accepted, which breaks later lookups, audits, and remediation tickets.
Exam caveat: some APIs return 409 for optimistic-concurrency failures (If-Match / ETag mismatch) as well as duplicate creates—both still need a conflict branch, not 5xx-style retry. Do not confuse 409 with 429; only the latter is typically recoverable by waiting.
Operational check: in the asset-tagging logs, confirm a 409 path records the conflicting hostname, performs a follow-up read of the existing inventory object, and never marks the ticket “created” unless a subsequent successful write or explicit merge policy says so.