dealing with open source models through a large number of providers be like
OpenRouter data reveals sharp fragmentation in API finish reasons returned by different open-source model providers
Story Overview
OpenRouter usage logs expose how open-source model hosts diverge on the raw signals they send when generations end, producing a long tail of native_finish_reason strings that range from capitalized duplicates to safety flags and missing values.
Parsing quirks hit agent code first
Libraries and frameworks that inspect the un-normalized field now face dozens of distinct strings, forcing extra handling for casing, nulls, and rare tokens like PROHIBITED_CONTENT.
Normalization helps but leaves gaps
OpenRouter already maps everything to a short canonical set, yet teams that reach providers directly or log the native field still encounter the full spread of provider-specific choices.
Users appreciate OpenRouter data on inconsistent finish reasons across model providers because it helps them clean and normalize datasets.
No Digg Deeper questions have been answered for this story yet.
Most Activity
@xlr8harder
dealing with open source models through a large number of providers be like

@xlr8harder recitation = model outputs (supposedly) copyrighted content verbatim and so google will literally interrupt your call serverside
i've never seen anything else like it that's why i remember it so well

@xlr8harder recitation is gemini no?

@cheatyyyy possibly! i use openrouter for most models for my eval, for convenience.

@cheatyyyy thanks, that's useful. i'm cleaning data right now to try to normalize all of this!

@xlr8harder ya u have to hard code / pick the providers if u let it auto route it’s hard