The Powerduck Blog

API engineering, from the spec out

Product updates, engineering notes, and guides for designing, debugging, testing, mocking, and serving MCP tools from one OpenAPI spec.

Browse the guides
openapi 4 min read

Defining File Uploads: multipart/form-data vs Base64 Bodies

Quick answer: For file uploads, multipart/form-data is the default correct choice because it streams binary bytes alongside other fields without inflating size, while a Base64 body is a workaround

Read article
ai 2 min read

The New Validation Rejected the Empty Optional a Legacy Client Always Sends

A stricter parser added by an agent rejected a request because an optional field arrived as an empty string. The agent's own synthetic test omitted the field entirely, so it never saw the empty-string shape that older clients have been sending for years.

Read article
ai 3 min read

The Comment the Agent Called Stale Was Holding an Invariant

An agent sweeping a file decides a comment looks outdated, removes it, and the code still compiles. The comment was never documentation of how something works; it was a warning about a constraint the next edit would quietly break.

Read article