> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# April 2026 Laravel updates

> The April 2026 Laravel ecosystem update. Passkeys (passwordless authentication), Debounceable Jobs, MCP UI App, Redis Cluster support, and more.

In April 2026, full-stack passwordless authentication became a standard Laravel feature, and many practical additions arrived, including Debounceable jobs to control bursty dispatches and MCP UI app support.

Source: [Laravel April Product Updates](https://laravel.com/blog/laravel-april-product-updates)

***

## Laravel Framework

### Debounceable Queued Jobs

A clean solution to bursty workloads. Use the `#[DebounceFor]` attribute to collapse multiple dispatches within a given window into just the last one. It's the flip side of `ShouldBeUnique`, streamlining consecutive updates within the debounce window.

```php theme={null}
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // Even if a user updates a document 10 times within 30 seconds,
    // the index rebuild only runs once
}

// Debouncing is also available at the call site (no class changes required)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
```

<Info>
  Debounced jobs fire a `JobDebounced` event, so you can observe skipped jobs.
</Info>

### Health route JSON response support

API-only apps no longer need to scrape HTML from `/up`. The built-in health route now returns JSON for JSON requests.

```json theme={null}
{ "status": "Application is up" }
```

This simplifies integration with load balancers, uptime monitors, and orchestrators. No configuration changes are needed.

### JsonFormatter

With `JsonFormatter`, custom exception `context()` data is reliably captured in structured logs, including the context of previous exceptions in the exception chain.

```php theme={null}
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,
```

### prefersJsonResponses()

Add a single line to `bootstrap/app.php` in an API app and broad `Accept` headers will be treated as JSON, with auth redirects, validation errors, and exception pages serialized appropriately for the client.

```php theme={null}
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();
```

### Cloudflare Email Service support

Cloudflare's Email Service is now officially supported as a Laravel mailer.

```php theme={null}
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],
```

### Full Redis Cluster support

CROSSSLOT errors in Redis Cluster environments such as AWS ElastiCache Serverless have been resolved. When Laravel's queues and ConcurrencyLimiter detect a Cluster connection, they automatically wrap queue names in hash tags.

```
queues:{default}          # "default" slot
queues:{default}:delayed  # same slot
queues:{default}:reserved # same slot
```

### Queue job inspection methods

Three methods have been added that let you inspect job contents without directly querying the database.

```php theme={null}
Queue::pendingJobs();   // pending jobs
Queue::delayedJobs();   // delayed jobs
Queue::reservedJobs();  // in-progress jobs

// Access the InspectedJob instance
Queue::reservedJobs('high-priority')->first()->name;
// => 'App\Jobs\SendEmail'
```

### Form Request Strict Mode

Prevent undeclared fields from passing validation. Incoming fields not declared in `rules()` cause validation to fail.

```php theme={null}
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}
```

***

## Passkeys (passwordless authentication)

Passwordless authentication is now available as a first-party, full-stack solution.

* **`laravel/passkeys` (server-side)**: Provides migrations, login/confirmation/credential management routes, WebAuthn actions, and events
* **`@laravel/passkeys` (client-side)**: Helpers for React, Vue, and Svelte that handle the browser's WebAuthn ceremonies
* **Fortify integration**: Just enable it with `Features::passkeys()`, and Fortify apps can use the same endpoints and contracts

```php theme={null}
// config/fortify.php
'features' => [
    Features::passkeys(),
],
```

***

## MCP UI App support

MCP tools can now render fully sandboxed HTML apps inside an iframe, not just text.

```bash theme={null}
php artisan make:mcp-app-resource DashboardApp
```

```php theme={null}
class DashboardApp extends AppResource
{
    #[RendersApp]
    public function handle(Request $request): Response
    {
        return Response::view('mcp.dashboard-app', [
            'title' => 'Dashboard',
        ]);
    }
}
```

***

## Inertia and ecosystem

* **`useHttp` hook**: Added `onHttpException` and `onNetworkError` callbacks
* **Laravel Echo Svelte 5 adapter**: Use real-time features from Svelte via the `useEcho` rune
* **Dusk**: `clickOnceEnabled()` and `clickOnceVisible()` prevent flaky tests
* **Horizon**: Full Redis Cluster support (AWS ElastiCache Serverless compatible)
* **VS Code extension**: Autocomplete, hover, and navigation for Laravel 13's new attributes

***

## Laravel Cloud and Laravel Forge

| Product           | Key updates                                                                                                       |
| ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Laravel Cloud** | Fully responsive mobile-ready UI, enhanced edge network (top IP/path display, firewall and cache rule conversion) |
| **Laravel Forge** | PHP 8.5 support, multi-SSL server support, certificate renewal alerts                                             |


## Related topics

- [March 2026 Laravel updates](/en/blog/changelog/202603.md)
- [May 2026 Laravel updates](/en/blog/changelog/202605.md)
- [June 2026 Laravel updates](/en/blog/changelog/202606.md)
- [laravel/agent-skills — Laravel's official AI agent skills](/en/blog/agent-skills-introduction.md)
- [Laravel Maestro — the starter kit orchestrator](/en/blog/maestro-introduction.md)
