From d43cb1d18005424ffbe606f6b639062f53389019 Mon Sep 17 00:00:00 2001 From: Lance Pioch Date: Thu, 12 Feb 2026 17:06:19 -0500 Subject: [PATCH] Fix empty egg config_files causing fatal 500 error (#2195) (#2197) --- app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php | 1 + app/Services/Eggs/EggConfigurationService.php | 8 ++++---- app/Transformers/Api/Application/EggTransformer.php | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php b/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php index 6d5f0a1a0..fef8bb118 100644 --- a/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php +++ b/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php @@ -318,6 +318,7 @@ class EditEgg extends EditRecord ->helperText(trans('admin/egg.start_config_help')), Textarea::make('config_files')->rows(10)->json() ->label(trans('admin/egg.config_files')) + ->dehydrateStateUsing(fn ($state) => blank($state) ? '{}' : $state) ->helperText(trans('admin/egg.config_files_help')), Textarea::make('config_logs')->rows(10)->json() ->label(trans('admin/egg.log_config')) diff --git a/app/Services/Eggs/EggConfigurationService.php b/app/Services/Eggs/EggConfigurationService.php index 04eddaa21..714535007 100644 --- a/app/Services/Eggs/EggConfigurationService.php +++ b/app/Services/Eggs/EggConfigurationService.php @@ -32,10 +32,10 @@ class EggConfigurationService */ public function handle(Server $server): array { - $configs = $this->replacePlaceholders( - $server, - json_decode($server->egg->inherit_config_files) - ); + $configFiles = json_decode($server->egg->inherit_config_files ?? '{}'); + $configs = is_object($configFiles) || is_array($configFiles) + ? $this->replacePlaceholders($server, $configFiles) + : []; return [ 'startup' => $this->convertStartupToNewFormat(json_decode($server->egg->inherit_config_startup, true)), diff --git a/app/Transformers/Api/Application/EggTransformer.php b/app/Transformers/Api/Application/EggTransformer.php index 1dac2d9bd..947a4613a 100644 --- a/app/Transformers/Api/Application/EggTransformer.php +++ b/app/Transformers/Api/Application/EggTransformer.php @@ -36,7 +36,7 @@ class EggTransformer extends BaseTransformer { $model->loadMissing('configFrom'); - $files = json_decode($model->inherit_config_files, true, 512, JSON_THROW_ON_ERROR); + $files = json_decode($model->inherit_config_files ?: '{}', true, 512, JSON_THROW_ON_ERROR); $model->loadMissing('scriptFrom'); @@ -53,9 +53,9 @@ class EggTransformer extends BaseTransformer 'docker_images' => $model->docker_images, 'config' => [ 'files' => $files, - 'startup' => json_decode($model->inherit_config_startup, true), + 'startup' => json_decode($model->inherit_config_startup ?: '{}', true), 'stop' => $model->inherit_config_stop, - 'logs' => json_decode($model->inherit_config_logs, true), + 'logs' => json_decode($model->inherit_config_logs ?: '{}', true), 'file_denylist' => $model->inherit_file_denylist, 'extends' => $model->config_from, ],