Why did we get billed for Incomplete responses?

Incomplete does not mean failed — it means the lookup is still processing in the background. If you don’t poll again with the retryId or use a callbackUrl, Cobalt finishes the lookup, stores it for 3 days, and then bills it when clearing results.

performance-batch-rate-limits