⚠️ RPC/Startup: Message keys returned as-is (i18n unavailable)
No request context available during service binding or startup
No locale information available
Frontend can translate message keys using its own i18n if needed
This is expected behavior, not a bug
Implementation Note:
The isAvailable() check exists to gracefully handle RPC/startup contexts
where no request container exists. For HTTP and Queue contexts, i18n is
always available thanks to AsyncLocalStorage scope propagation. This follows
the "Laravel philosophy" - transparent dependency injection for request contexts,
with explicit handling only for legitimate non-request edge cases.
GlobalErrorHandler
Centralized error handler registered in the DI container. Responsible for:
Translation Availability by Context:
✅ HTTP Requests: Errors are fully translated
✅ Queue Processing: Errors are fully translated
⚠️ RPC/Startup: Message keys returned as-is (i18n unavailable)
Implementation Note: The
isAvailable()check exists to gracefully handle RPC/startup contexts where no request container exists. For HTTP and Queue contexts, i18n is always available thanks to AsyncLocalStorage scope propagation. This follows the "Laravel philosophy" - transparent dependency injection for request contexts, with explicit handling only for legitimate non-request edge cases.