pdf export: Parent table not found for table cell #5108

Closed
opened 2026-02-05 09:40:54 +03:00 by OVERLORD · 4 comments
Owner

Originally created by @tipuraneo on GitHub (Jan 7, 2025).

Describe the Bug

Hello,

I am running Bockstack v24.12 on Ubuntu 22.04.5 LTS with Apache/2.4.52 (Ubuntu) and PHP 8.1.2-1ubuntu2.2. During the pdf export of the chapter I get the following error in the laravel.log.

[2025-01-07 17:35:48] production.ERROR: Parent table not found for table cell {"exception":"[object] (Dompdf\\Exception(code: 0): Parent table not found for table cell at /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php:40)
[stacktrace]
#0 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableCell->reflow()
#1 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php(56): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#2 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableRow->reflow()
#3 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php(50): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#4 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableRowGroup->reflow()
#5 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#6 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow()
#7 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#8 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow()
#9 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#10 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow()
#11 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Page.php(142): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#12 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Page->reflow()
#13 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(808): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow()
#14 /var/www/bookstack/app/Exports/PdfGenerator.php(64): Dompdf\\Dompdf->render()
#15 /var/www/bookstack/app/Exports/PdfGenerator.php(26): BookStack\\Exports\\PdfGenerator->renderUsingDomPdf()
#16 /var/www/bookstack/app/Exports/ExportFormatter.php(162): BookStack\\Exports\\PdfGenerator->fromHtml()
#17 /var/www/bookstack/app/Exports/ExportFormatter.php(125): BookStack\\Exports\\ExportFormatter->htmlToPdf()
#18 /var/www/bookstack/app/Exports/Controllers/ChapterExportController.php(30): BookStack\\Exports\\ExportFormatter->chapterToPdf()
#19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): BookStack\\Exports\\Controllers\\ChapterExportController->pdf()
#20 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#21 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(806): Illuminate\\Routing\\Route->run()
#24 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#25 /var/www/bookstack/app/Http/Middleware/CheckUserHasPermission.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\CheckUserHasPermission->handle()
#27 /var/www/bookstack/app/Http/Middleware/Authenticate.php(23): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\Authenticate->handle()
#29 /var/www/bookstack/app/Http/Middleware/Localization.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\Localization->handle()
#31 /var/www/bookstack/app/Http/Middleware/RunThemeActions.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\RunThemeActions->handle()
#33 /var/www/bookstack/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\CheckEmailConfirmed->handle()
#35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Session\\Middleware\\StartSession->handle()
#42 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#46 /var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\ApplyCspRules->handle()
#48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then()
#50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\\Routing\\Router->runRouteWithinStack()
#51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\\Routing\\Router->runRoute()
#52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\\Routing\\Router->dispatchToRoute()
#53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#55 /var/www/bookstack/app/Http/Middleware/PreventResponseCaching.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\PreventResponseCaching->handle()
#57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#58 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#59 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\TrustProxies->handle()
#60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#64 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#65 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#66 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#67 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#68 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#69 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#70 /var/www/bookstack/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle()
#71 {main}
"}

apache error.log does not give any hints. access.log says:

x.x.x.x - - [07/Jan/2025:17:49:51 +0100] "GET /books/moodle/chapter/interaktivitat-und-austausch/export/pdf HTTP/1.1" 500 22179 "https://kb.el.uni-leipzig.de/books/moodle/chapter/interaktivitat-und-austausch" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

Error occurs with and without logged in user.
How can I fix it?

Kind Regards

Steps to Reproduce

  1. navigate to Website
  2. click on Export > PDF

Expected Behaviour

generating a pdf file and push it for download

Screenshots or Additional Context

image

Browser Details

Chrome

Exact BookStack Version

v24.12

Originally created by @tipuraneo on GitHub (Jan 7, 2025). ### Describe the Bug Hello, I am running Bockstack v24.12 on Ubuntu 22.04.5 LTS with Apache/2.4.52 (Ubuntu) and PHP 8.1.2-1ubuntu2.2. During the pdf export of the chapter I get the following error in the laravel.log. ``` [2025-01-07 17:35:48] production.ERROR: Parent table not found for table cell {"exception":"[object] (Dompdf\\Exception(code: 0): Parent table not found for table cell at /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php:40) [stacktrace] #0 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableCell->reflow() #1 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php(56): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #2 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableRow->reflow() #3 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php(50): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #4 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\TableRowGroup->reflow() #5 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #6 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow() #7 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #8 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow() #9 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Block.php(865): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #10 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Block->reflow() #11 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameReflower/Page.php(142): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #12 /var/www/bookstack/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(905): Dompdf\\FrameReflower\\Page->reflow() #13 /var/www/bookstack/vendor/dompdf/dompdf/src/Dompdf.php(808): Dompdf\\FrameDecorator\\AbstractFrameDecorator->reflow() #14 /var/www/bookstack/app/Exports/PdfGenerator.php(64): Dompdf\\Dompdf->render() #15 /var/www/bookstack/app/Exports/PdfGenerator.php(26): BookStack\\Exports\\PdfGenerator->renderUsingDomPdf() #16 /var/www/bookstack/app/Exports/ExportFormatter.php(162): BookStack\\Exports\\PdfGenerator->fromHtml() #17 /var/www/bookstack/app/Exports/ExportFormatter.php(125): BookStack\\Exports\\ExportFormatter->htmlToPdf() #18 /var/www/bookstack/app/Exports/Controllers/ChapterExportController.php(30): BookStack\\Exports\\ExportFormatter->chapterToPdf() #19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): BookStack\\Exports\\Controllers\\ChapterExportController->pdf() #20 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction() #21 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch() #22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController() #23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(806): Illuminate\\Routing\\Route->run() #24 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}() #25 /var/www/bookstack/app/Http/Middleware/CheckUserHasPermission.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\CheckUserHasPermission->handle() #27 /var/www/bookstack/app/Http/Middleware/Authenticate.php(23): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\Authenticate->handle() #29 /var/www/bookstack/app/Http/Middleware/Localization.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\Localization->handle() #31 /var/www/bookstack/app/Http/Middleware/RunThemeActions.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\RunThemeActions->handle() #33 /var/www/bookstack/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\CheckEmailConfirmed->handle() #35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle() #37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle() #39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest() #41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Session\\Middleware\\StartSession->handle() #42 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle() #44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle() #46 /var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\ApplyCspRules->handle() #48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then() #50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\\Routing\\Router->runRouteWithinStack() #51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\\Routing\\Router->runRoute() #52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\\Routing\\Router->dispatchToRoute() #53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch() #54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}() #55 /var/www/bookstack/app/Http/Middleware/PreventResponseCaching.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\PreventResponseCaching->handle() #57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #58 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle() #59 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): BookStack\\Http\\Middleware\\TrustProxies->handle() #60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle() #62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle() #63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #64 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle() #65 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #66 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle() #67 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #68 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then() #69 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter() #70 /var/www/bookstack/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle() #71 {main} "} ``` apache error.log does not give any hints. access.log says: ``` x.x.x.x - - [07/Jan/2025:17:49:51 +0100] "GET /books/moodle/chapter/interaktivitat-und-austausch/export/pdf HTTP/1.1" 500 22179 "https://kb.el.uni-leipzig.de/books/moodle/chapter/interaktivitat-und-austausch" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" ``` Error occurs with and without logged in user. How can I fix it? Kind Regards ### Steps to Reproduce 1. navigate to Website 2. click on Export > PDF ### Expected Behaviour generating a pdf file and push it for download ### Screenshots or Additional Context ![image](https://github.com/user-attachments/assets/49360b7e-a555-473a-85a1-29895c0a5e29) ### Browser Details Chrome ### Exact BookStack Version v24.12
OVERLORD added the 🐕 Support label 2026-02-05 09:40:54 +03:00
Author
Owner

@tipuraneo commented on GitHub (Jan 7, 2025):

I was able to narrow down the issue to a single page. By creating a new page with a the simplest possible table could reproduce the issue:

<table id="bkmrk-%C2%A0">
<tbody>
<tr>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
@tipuraneo commented on GitHub (Jan 7, 2025): I was able to narrow down the issue to a single page. By creating a new page with a the simplest possible table could reproduce the issue: ```html <table id="bkmrk-%C2%A0"> <tbody> <tr> <td>&nbsp;</td> </tr> </tbody> </table> ```
Author
Owner

@ssddanbrown commented on GitHub (Mar 15, 2025):

Hi @tipuraneo, Thanks for reporting.

Unfortunately I have not been able to replicate this. Even when going back to v24.12, tables in content don't seem to break PDF exports, at a page, chapter or book level.

Are you able to reproduce this on our demo site?

@ssddanbrown commented on GitHub (Mar 15, 2025): Hi @tipuraneo, Thanks for reporting. Unfortunately I have not been able to replicate this. Even when going back to v24.12, tables in content don't seem to break PDF exports, at a page, chapter or book level. Are you able to reproduce this on [our demo site](https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site)?
Author
Owner

@ssddanbrown commented on GitHub (Mar 15, 2025):

Diving deeper, I looked at your site and copied the customizations out to my own development instance, which would then cause the issue to occur.

Specifically, it's this customization that's applied in the "Custom HTML Head Content" customization setting, which is causing trouble with the export render since it's causing tables not to be treated as tables in the same manner:

  /* Tabellen scrollbar machen */
  .page-content table {
    /* overflow: scroll; */
    display: block;
    /* `!important` is required to override the official styles `!important`.. */
    /* height: 800px !important; */
    white-space: nowrap;
  }

As an alternative, you could tweak that specific rule so it's ignored for exports, like so:

    /* Tabellen scrollbar machen */
  .page-content table:not(body.export *) {
    /* overflow: scroll; */
    display: block;
    /* `!important` is required to override the official styles `!important`.. */
    /* height: 800px !important; */
    white-space: nowrap;
  }
@ssddanbrown commented on GitHub (Mar 15, 2025): Diving deeper, I looked at your site and copied the customizations out to my own development instance, which would then cause the issue to occur. Specifically, it's this customization that's applied in the "Custom HTML Head Content" customization setting, which is causing trouble with the export render since it's causing tables not to be treated as tables in the same manner: ```css /* Tabellen scrollbar machen */ .page-content table { /* overflow: scroll; */ display: block; /* `!important` is required to override the official styles `!important`.. */ /* height: 800px !important; */ white-space: nowrap; } ``` As an alternative, you could tweak that specific rule so it's ignored for exports, like so: ```css /* Tabellen scrollbar machen */ .page-content table:not(body.export *) { /* overflow: scroll; */ display: block; /* `!important` is required to override the official styles `!important`.. */ /* height: 800px !important; */ white-space: nowrap; } ```
Author
Owner

@tipuraneo commented on GitHub (Mar 17, 2025):

Hi Dan, Thanks for testing. Because the css does not work as intended, I removed the section. Now pdf export is possible. So this is not a bookstack issue and can be closed.

@tipuraneo commented on GitHub (Mar 17, 2025): Hi Dan, Thanks for testing. Because the css does not work as intended, I removed the section. Now pdf export is possible. So this is not a bookstack issue and can be closed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#5108