#29638 [Bug]: Proxy double-logs image_generation (2 callback events per call); SDK logs once
## What happened
On the **proxy**, every `/v1/images/generations` call fires the success-logging callbacks **twice** — two identical logging events per call (e.g. two Langfuse GENERATION observations, byte-identical except `id`: same model, prompt, `start_time` **and** `end_time`, cost). Two real API calls can't share an end-timestamp, so it's one call logged twice.
`/v1/chat/completions` on the same proxy logs **once**. The duplication is specific to the image path.
## Isolation (verified — the solid evidence)
Using a minimal `CustomLogger` that counts success-callback invocations:
| call path | success-callback invocations | |---|---| | `Router.image_generation` (sync) | **1** | | `Router.aimage_generation` (async) | **1** | | `Router.aimage_generation` + langfuse (direct) | **1** (one observation) | | **litellm proxy** → `/v1/images/generations` | **2** |
So the Router, the core call, and the Langfuse integration each log exactly once. **Only the full proxy doubles** — the second emit is added in the proxy's image request path. chat does not exhibit it. For multi-attempt images (retry/fallback) the count is 2× per real attempt, so totals are always even multiples of the re…