Skip to content
Wade Womersley

wade.one

wade womersley – york based software engineer

  • Home
  • 2026
  • October
  • 14
  • An API Timeout Does Not Mean the Operation Failed

An API Timeout Does Not Mean the Operation Failed

Posted on October 14, 2026 By
Programming

A timeout tells you that a response did not arrive in time. It does not tell you whether the server finished the operation. That distinction matters whenever a request creates something, sends something or changes a record. Retrying blindly can turn one uncertain result into two very definite mistakes.

AWS explains the problem well in its guide to idempotent APIs. A caller-provided request identifier lets the service recognise another attempt at the same operation. The identifier needs to belong to the original intent; generating a fresh one for every retry defeats the point.

I would make that behaviour part of the API contract, including what happens if the same key arrives with different parameters or while the original request is still running. Recording the key and performing the change also need a reliable relationship. A separate “have we seen this?” check followed by a write is not enough if two workers can both pass the check.

The interface should reflect uncertainty as well. “We could not confirm the result” is more honest than “nothing happened” when the connection dropped. Give the user a way to check the existing operation before starting another one. A slightly less confident message can save a lot of cleanup.

Share:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Pinterest (Opens in new window) Pinterest
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on Reddit (Opens in new window) Reddit

Related

Comments

comments

Tags: apis idempotency retries

Post navigation

❮ Previous Post: Tiny Hotel Breakfast Jams Are Ridiculously Appealing
Next Post: Read the PostgreSQL Query Plan Before Adding Another Index ❯

You may also like

Programming
The Case for Smaller Deployments
April 17, 2026
Programming
MySQL and Binary(16) – The Reasons/Benefits/Drawbacks (#mysql)
January 31, 2010
Programming
Reset MySQL root password if you forgot it #mysql
April 12, 2010
PHP
PHP 8.2 vs 7.4
March 26, 2023
  • AI
  • artificial intelligence
  • Ego-centric
  • Events
  • Films
  • Food
  • Gaming
  • Gym
  • Hardware
  • Holidays
  • News
  • PHP
  • Programming
  • Random Stuff
  • Reviews
  • Science
  • SEO
  • Software
  • Software Engineer
  • Support
  • Uncategorized
  • Work

Copyright © 2026 wade.one.

Theme: Oceanly News Dark by ScriptsTown