mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-10-05 20:28:23 +00:00
The write edge read each rate through `dict.get`, which returns `None` for an absent key and for an explicit `null` alike, and skipped both. `Pricing` declares `prompt` and `completion` without a default and every rate as a float, so neither is a row the read path can parse: the write was accepted, the row committed, and the response that reads it back raised — a 500 for a request the edge had already acted on, leaving a model that cannot be served. Ask whether the key is there, then whether its value is a rate. Which rates are required is derived from `Pricing` itself rather than restated, so the two cannot drift; an omitted auxiliary rate is still accepted, since those have defaults. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014X8RZzzbAuQCbavhFjTvJ4