From 6dd9ed1232d53e4831a9721ab6a159b44087b39f Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Tue, 7 Apr 2026 01:05:08 +0200 Subject: [PATCH] Fix infinite request loop on File Disk admin page configureMediaDisk() was calling FileDisk::setConfig() which mutates the global filesystems.default config on every request. This caused cascading requests on the File Disk admin page. Now registers the media disk config directly without changing the global default filesystem. --- app/Providers/AppServiceProvider.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a6f99eda..080380cb 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -186,9 +186,21 @@ class AppServiceProvider extends ServiceProvider : FileDisk::where('set_as_default', true)->first(); if ($disk) { - $disk->setConfig(); + // Register the disk config without changing the global default. + // setConfig() mutates filesystems.default which causes side effects. $prefix = env('DYNAMIC_DISK_PREFIX', 'temp_'); - config(['media-library.disk_name' => $prefix.$disk->driver]); + $diskName = $prefix.$disk->driver; + $credentials = collect(json_decode($disk->credentials)); + $baseConfig = config('filesystems.disks.'.$disk->driver, []); + + foreach ($baseConfig as $key => $value) { + if ($credentials->has($key)) { + $baseConfig[$key] = $credentials[$key]; + } + } + + config(['filesystems.disks.'.$diskName => $baseConfig]); + config(['media-library.disk_name' => $diskName]); } } catch (\Exception $e) { // DB not yet migrated or settings table missing — use config default