v0.42.1
A producer error raised on its first turn is now flagged like every other error.
fix(http): a producer whose produce() raised on its first turn answered with an unflagged 200. The error batch was in the body, but nothing set X-VGI-RPC-Error, so a client keying off the header saw a normal result. Every other error path in the module already set it — the unary path, the exchange path, and the cap-overshoot branch sixty lines above.
The shape matters more than the omission suggests. HTTP folds the first producer turn into /init, and a stream that declares a header answers with two concatenated Arrow IPC streams (header + data), because an IPC stream carries exactly one schema. The error therefore rides on a batch in the second stream — so a client that reads only the first sees a valid header, no error, and has nothing but the header flag to go on. The DuckDB VGI extension did exactly that and surfaced a generic transport failure with the worker's message dropped; that report is what led here.
Distinct from the two shapes already covered: an init-time raise never gets as far as writing a header, and a later-turn raise answers a separate request. Neither exercises the fold.
No API change and no new contract, so this is a patch. Ports pinning a floor at 0.42.0 pick it up without moving. Ports implementing the HTTP server side should check their own first-turn path.