The Wire · Showcase
LARAVEL AI FIXES FAILOVER MODEL SILENCING BUG, MCP GETS CLIENT FOUNDATION
By RepoJournal · Filed · About Laravel
Laravel AI's failover provider system was ignoring explicitly configured models across backup providers, now fixed to apply consistently.
The AI package shipped a critical fix where model attributes and explicit model parameters were silently dropped when using provider failover lists [1]. This affected both the prompt API and class-level attributes, meaning your carefully configured gpt-4-mini fallback to Gemini was actually falling through without the model directive. In the same push, the team also cut non-ASCII token bloat by 70% in structured output by adding JSON_UNESCAPED_UNICODE flag to schema instructions, solving a problem where non-English field descriptions were inflating token counts to 17k when they should have been 6k [2]. The MCP package landed its first client foundation with a stdio transport builder and ping support [3], meaning you can now spawn local MCP servers and test them from Laravel code, not just run them as servers. Over in framework, the team replaced all instances of `compact()` with explicit arrays across 13.x in preparation for AOT PHP compiler support, since AOT compilers can't resolve variable names from strings at runtime [4]. Two more framework fixes ship this cycle: async HTTP retries now correctly handle array-based backoff values [5], and `Str::studly()` gained an optional `normalize` parameter to handle all-caps strings like 'CBOR' that were previously left unchanged [6]. Pulse also patched an ingest failure for MySQL/MariaDB users with `use_upsert_alias` enabled, which was causing ambiguous column errors [7].
Action items
- → Upgrade laravel/ai if using failover providers with explicit models laravel/ai [immediate]
- → Test MCP client foundation for server integration work laravel/mcp [plan]
- → Merge framework upgrade for async retry and string normalization fixes laravel/framework [plan]
- → Upgrade pulse if using MySQL with use_upsert_alias laravel/pulse [immediate]
References
- [1] Apply model attribute and explicit model to all providers in a failover list ↗ laravel/ai
- [2] Add JSON_UNESCAPED_UNICODE to schema instruction encoding ↗ laravel/ai
- [3] Add MCP client foundation with stdio transport and ping ↗ laravel/mcp
- [4] [13.x] Replace compact with explicit arrays ↗ laravel/framework
- [5] [13.x] Fix async HTTP retries when using array backoff values ↗ laravel/framework
- [6] [13.x] Add `normalize` parameter to `Str::studly()` and `Str::pascal()` ↗ laravel/framework
- [7] Support `use_upsert_alias` to prevent ingest failure ↗ laravel/pulse
FAQ
- What changed in Laravel on May 23, 2026?
- Laravel AI's failover provider system was ignoring explicitly configured models across backup providers, now fixed to apply consistently.
- What should Laravel teams do about it?
- Upgrade laravel/ai if using failover providers with explicit models • Test MCP client foundation for server integration work • Merge framework upgrade for async retry and string normalization fixes
- Which Laravel repositories shipped on May 23, 2026?
- laravel/ai, laravel/mcp, laravel/framework, laravel/pulse