[Bug] RootTagMissingFromViewException when deleting eggs (bulk or individual) #514

Open
opened 2026-02-05 17:42:08 +03:00 by OVERLORD · 12 comments
Owner

Originally created by @Kalletal on GitHub (Dec 12, 2025).

Bug Description

When attempting to delete eggs from the Admin panel (either via bulk action or individual delete), the page fails with the error message "Error while loading page - There was an error while attempting to load this page. Please try again later."

Steps to Reproduce

  1. Go to Admin → Eggs
  2. Select one or more eggs
  3. Click "Bulk actions" → "Delete selected" (or click on an egg and use the individual delete button)
  4. Error appears: "Error while loading page"

Expected Behavior

The egg(s) should be deleted and the page should refresh showing the updated list.

Actual Behavior

The page displays an error. The Laravel log shows:

[2025-12-12 11:56:39] production.ERROR: Livewire encountered a missing root tag when trying to render a component.
When rendering a Blade view, make sure it contains a root HTML tag. {"userId":1,"exception":"[object] (Livewire\\Exceptions\\RootTagMissingFromViewException(code: 0): Livewire encountered a missing root tag when trying to render a component.
When rendering a Blade view, make sure it contains a root HTML tag. at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20)

The stacktrace shows the error occurs in App\Filament\Admin\Resources\Eggs\Pages\ListEggs.

Workaround

Deleting eggs via artisan tinker works:

php artisan tinker --execute="App\Models\Egg::find(ID)->delete()"

Environment

  • Panel Version: Latest Docker image (ghcr.io/pelican-dev/panel:latest)
  • Image SHA: sha256:be8b99caba624baa333be95e492960d0b6dad4e47da6508d8023c97f68f9cadd
  • Laravel Version: 12.42.0
  • PHP Version: 8.4.15
  • Database: SQLite
  • OS: Synology DSM (Docker)

Additional Context

  • Fresh installation, no custom modifications
  • Clearing all caches (config:clear, view:clear, cache:clear, filament:optimize) does not resolve the issue
  • Setting inject_morph_markers => false in livewire.php config does not resolve the issue
  • The issue affects both bulk delete and individual egg delete actions
Originally created by @Kalletal on GitHub (Dec 12, 2025). ## Bug Description When attempting to delete eggs from the Admin panel (either via bulk action or individual delete), the page fails with the error message "Error while loading page - There was an error while attempting to load this page. Please try again later." ## Steps to Reproduce 1. Go to Admin → Eggs 2. Select one or more eggs 3. Click "Bulk actions" → "Delete selected" (or click on an egg and use the individual delete button) 4. Error appears: "Error while loading page" ## Expected Behavior The egg(s) should be deleted and the page should refresh showing the updated list. ## Actual Behavior The page displays an error. The Laravel log shows: ``` [2025-12-12 11:56:39] production.ERROR: Livewire encountered a missing root tag when trying to render a component. When rendering a Blade view, make sure it contains a root HTML tag. {"userId":1,"exception":"[object] (Livewire\\Exceptions\\RootTagMissingFromViewException(code: 0): Livewire encountered a missing root tag when trying to render a component. When rendering a Blade view, make sure it contains a root HTML tag. at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20) ``` The stacktrace shows the error occurs in `App\Filament\Admin\Resources\Eggs\Pages\ListEggs`. ## Workaround Deleting eggs via artisan tinker works: ```bash php artisan tinker --execute="App\Models\Egg::find(ID)->delete()" ``` ## Environment - **Panel Version**: Latest Docker image (`ghcr.io/pelican-dev/panel:latest`) - **Image SHA**: `sha256:be8b99caba624baa333be95e492960d0b6dad4e47da6508d8023c97f68f9cadd` - **Laravel Version**: 12.42.0 - **PHP Version**: 8.4.15 - **Database**: SQLite - **OS**: Synology DSM (Docker) ## Additional Context - Fresh installation, no custom modifications - Clearing all caches (`config:clear`, `view:clear`, `cache:clear`, `filament:optimize`) does not resolve the issue - Setting `inject_morph_markers => false` in livewire.php config does not resolve the issue - The issue affects both bulk delete and individual egg delete actions
OVERLORD added the not confirmed label 2026-02-05 17:42:08 +03:00
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

Update: All egg actions are broken

After further testing, the issue affects all actions on the Eggs page, not just deletion:

  • Delete (bulk or individual)
  • Import egg
  • Create new egg

Any action on the Eggs admin page triggers the same RootTagMissingFromViewException error.

The page loads correctly, but any Livewire action fails with the error.

@Kalletal commented on GitHub (Dec 12, 2025): ## Update: All egg actions are broken After further testing, the issue affects **all actions** on the Eggs page, not just deletion: - ❌ Delete (bulk or individual) - ❌ Import egg - ❌ Create new egg Any action on the Eggs admin page triggers the same `RootTagMissingFromViewException` error. The page loads correctly, but any Livewire action fails with the error.
Author
Owner

@notAreYouScared commented on GitHub (Dec 12, 2025):

Quick testing on the demo.... bulk actions appear to work just fine?

@notAreYouScared commented on GitHub (Dec 12, 2025): Quick testing on the demo.... bulk actions appear to work just fine?
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

Thanks for checking @notAreYouScared.

I'm running the panel on Synology DSM with a specific setup that might be relevant:

  1. Access method: Panel is accessed through DSM's iframe (HTTPS DSM → HTTP Panel via CGI proxy)
  2. Direct HTTP access: The bug also occurs when accessing the panel directly via http://IP:8080 (not through iframe)
  3. Fresh install: Just did a completely fresh install with empty database - same error
  4. Docker image: ghcr.io/pelican-dev/panel:latest (beta29, SHA: be8b99caba62)
  5. Also tested with beta28: Same error with the older image (ff3679ec564e from Nov 9)

The error occurs on any Livewire action on the Eggs page (delete, create, import). The page loads fine, but any action fails.

Could there be something specific about the Docker environment or request headers that triggers this? I can provide more debug info if needed.

@Kalletal commented on GitHub (Dec 12, 2025): Thanks for checking @notAreYouScared. I'm running the panel on **Synology DSM** with a specific setup that might be relevant: 1. **Access method**: Panel is accessed through DSM's iframe (HTTPS DSM → HTTP Panel via CGI proxy) 2. **Direct HTTP access**: The bug also occurs when accessing the panel directly via `http://IP:8080` (not through iframe) 3. **Fresh install**: Just did a completely fresh install with empty database - same error 4. **Docker image**: `ghcr.io/pelican-dev/panel:latest` (beta29, SHA: `be8b99caba62`) 5. **Also tested with beta28**: Same error with the older image (`ff3679ec564e` from Nov 9) The error occurs on any Livewire action on the Eggs page (delete, create, import). The page loads fine, but any action fails. Could there be something specific about the Docker environment or request headers that triggers this? I can provide more debug info if needed.
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

@notAreYouScared I've tested with:

  • Fresh install (empty database)
  • Beta28 and Beta29 images
  • Direct HTTP access (no iframe/proxy)
  • Without any custom patches

Same error every time. Here's the full stacktrace from Laravel logs:

Livewire\Exceptions\RootTagMissingFromViewException: Livewire encountered a missing root tag when trying to render a component.
at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20

#0 /var/www/html/vendor/filament/support/src/Livewire/Partials/PartialsComponentHook.php(137): Livewire\Drawer\Utils::insertAttributesIntoHtmlRoot()
#1 App\Filament\Admin\Resources\Eggs\Pages\ListEggs

The error happens during dehydrate phase in Livewire's HandleComponents. Could this be related to PHP version (8.4.15) or Laravel version (12.42.0)?

Is there anything specific about the demo environment I could compare against?

@Kalletal commented on GitHub (Dec 12, 2025): @notAreYouScared I've tested with: - Fresh install (empty database) - Beta28 and Beta29 images - Direct HTTP access (no iframe/proxy) - Without any custom patches Same error every time. Here's the full stacktrace from Laravel logs: ``` Livewire\Exceptions\RootTagMissingFromViewException: Livewire encountered a missing root tag when trying to render a component. at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20 #0 /var/www/html/vendor/filament/support/src/Livewire/Partials/PartialsComponentHook.php(137): Livewire\Drawer\Utils::insertAttributesIntoHtmlRoot() #1 App\Filament\Admin\Resources\Eggs\Pages\ListEggs ``` The error happens during `dehydrate` phase in Livewire's `HandleComponents`. Could this be related to PHP version (8.4.15) or Laravel version (12.42.0)? Is there anything specific about the demo environment I could compare against?
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

Quick question: what Docker image/tag is running on the demo? I'm using ghcr.io/pelican-dev/panel:latest - wondering if there's a specific version that works better.

@Kalletal commented on GitHub (Dec 12, 2025): Quick question: what Docker image/tag is running on the demo? I'm using `ghcr.io/pelican-dev/panel:latest` - wondering if there's a specific version that works better.
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

Confirmed: egg deletion works fine on https://demo.pelican.dev

So the issue is specific to my environment. Could you tell me what PHP version the demo is running?

I'm on PHP 8.4.15 which is very recent - wondering if there's a compatibility issue with Livewire/Filament on PHP 8.4.x?

My environment:

  • PHP 8.4.15
  • Laravel 12.42.0
  • Docker on Synology DSM
@Kalletal commented on GitHub (Dec 12, 2025): Confirmed: egg deletion works fine on https://demo.pelican.dev So the issue is specific to my environment. Could you tell me what PHP version the demo is running? I'm on **PHP 8.4.15** which is very recent - wondering if there's a compatibility issue with Livewire/Filament on PHP 8.4.x? My environment: - PHP 8.4.15 - Laravel 12.42.0 - Docker on Synology DSM
Author
Owner

@Kalletal commented on GitHub (Dec 12, 2025):

One more question: does the demo use MySQL/MariaDB or SQLite?

I'm using SQLite (the default for Docker). Wondering if the issue could be database-driver related.

Current config:

  • DB_CONNECTION=sqlite
  • Database at /pelican-data/database/database.sqlite
@Kalletal commented on GitHub (Dec 12, 2025): One more question: does the demo use **MySQL/MariaDB** or **SQLite**? I'm using SQLite (the default for Docker). Wondering if the issue could be database-driver related. Current config: - `DB_CONNECTION=sqlite` - Database at `/pelican-data/database/database.sqlite`
Author
Owner

@JoanFo1456 commented on GitHub (Dec 13, 2025):

Image Works on my panel and demo, idk what you did, but it works.
@JoanFo1456 commented on GitHub (Dec 13, 2025): <img width="1568" height="170" alt="Image" src="https://github.com/user-attachments/assets/831acd01-43e9-4c2b-9181-d5ebe8020cd0" /> Works on my panel and demo, idk what you did, but it works.
Author
Owner

@Boy132 commented on GitHub (Dec 13, 2025):

The demo doesn't use docker, it's installed directly on the machine and pulls the main branch every hour. Using php 8.3 and mariadb on debian 12.

@Boy132 commented on GitHub (Dec 13, 2025): The demo doesn't use docker, it's installed directly on the machine and pulls the main branch every hour. Using php 8.3 and mariadb on debian 12.
Author
Owner

@JoanFo1456 commented on GitHub (Dec 13, 2025):

The demo doesn't use docker, it's installed directly on the machine and pulls the main branch every hour. Using php 8.3 and mariadb on debian 12.

I do use php8.4 for my panel, and I don't get this, unless it's docker only, I can't reproduce.

@JoanFo1456 commented on GitHub (Dec 13, 2025): > The demo doesn't use docker, it's installed directly on the machine and pulls the main branch every hour. Using php 8.3 and mariadb on debian 12. I do use php8.4 for my panel, and I don't get this, unless it's docker only, I can't reproduce.
Author
Owner

@Kalletal commented on GitHub (Dec 15, 2025):

I can confirm this issue also occurs with MariaDB (not just SQLite).

Environment:

  • Pelican Panel: latest Docker image (ghcr.io/pelican-dev/panel:latest)
  • Database: MariaDB 10.11 (in separate container)
  • Host: Synology DSM 7.2 (Container Manager)
  • Access: Both direct HTTP and via iframe

Error from Laravel logs:

production.ERROR: Livewire encountered a missing root tag when trying to render a component.
When rendering a Blade view, make sure it contains a root HTML tag.
at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20

What works:

  • Dashboard, Nodes, Servers, Users, Settings pages all work fine

What doesn't work:

  • Eggs page: "Error while loading page"
  • Any bulk action or interaction with the Eggs list

The issue seems to be specific to the Docker environment, not the database type. Cache clearing (artisan cache:clear, view:clear, config:clear, filament:cache-components) does not resolve it.

This is a critical feature for managing game servers. Is there any workaround or known fix for Docker deployments?

@Kalletal commented on GitHub (Dec 15, 2025): I can confirm this issue also occurs with **MariaDB** (not just SQLite). **Environment:** - Pelican Panel: latest Docker image (`ghcr.io/pelican-dev/panel:latest`) - Database: MariaDB 10.11 (in separate container) - Host: Synology DSM 7.2 (Container Manager) - Access: Both direct HTTP and via iframe **Error from Laravel logs:** ``` production.ERROR: Livewire encountered a missing root tag when trying to render a component. When rendering a Blade view, make sure it contains a root HTML tag. at /var/www/html/vendor/livewire/livewire/src/Drawer/Utils.php:20 ``` **What works:** - Dashboard, Nodes, Servers, Users, Settings pages all work fine **What doesn't work:** - Eggs page: "Error while loading page" - Any bulk action or interaction with the Eggs list The issue seems to be specific to the Docker environment, not the database type. Cache clearing (`artisan cache:clear`, `view:clear`, `config:clear`, `filament:cache-components`) does not resolve it. This is a critical feature for managing game servers. Is there any workaround or known fix for Docker deployments?
Author
Owner

@Kalletal commented on GitHub (Dec 15, 2025):

Additional technical details:

Pelican: 1.0.0-beta29 (Up-to-Date: Yes)
Laravel: 12.42.0
Livewire: v3.7.1
Filament: v4.3.1
PHP: 8.4.15

Root cause identified in logs:

Livewire\Drawer\Utils::insertAttributesIntoHtmlRoot('<!--[if BLOCK]>...', Array)

Livewire is trying to insert attributes into an HTML root tag but encounters <!--[if BLOCK]> (a Blade conditional comment) instead of an actual HTML element. This happens in Filament\Support\Livewire\Partials\PartialsComponentHook->dehydrate().

The failing component is App\Filament\Admin\Resources\Eggs\Pages\ListEggs.

This appears to be a Filament v4.3.1 / Livewire v3.7.1 compatibility issue specific to the Eggs resource, possibly related to how the table or bulk actions are rendered.

Cache status (from artisan about):

  • Config: NOT CACHED
  • Events: CACHED
  • Routes: CACHED
  • Views: CACHED
  • Panel Components: CACHED

Clearing caches does not resolve the issue.

@Kalletal commented on GitHub (Dec 15, 2025): **Additional technical details:** ``` Pelican: 1.0.0-beta29 (Up-to-Date: Yes) Laravel: 12.42.0 Livewire: v3.7.1 Filament: v4.3.1 PHP: 8.4.15 ``` **Root cause identified in logs:** ``` Livewire\Drawer\Utils::insertAttributesIntoHtmlRoot('<!--[if BLOCK]>...', Array) ``` Livewire is trying to insert attributes into an HTML root tag but encounters `<!--[if BLOCK]>` (a Blade conditional comment) instead of an actual HTML element. This happens in `Filament\Support\Livewire\Partials\PartialsComponentHook->dehydrate()`. The failing component is `App\Filament\Admin\Resources\Eggs\Pages\ListEggs`. This appears to be a Filament v4.3.1 / Livewire v3.7.1 compatibility issue specific to the Eggs resource, possibly related to how the table or bulk actions are rendered. Cache status (from `artisan about`): - Config: NOT CACHED - Events: CACHED - Routes: CACHED - Views: CACHED - Panel Components: CACHED Clearing caches does not resolve the issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/panel-pelican-dev#514