Theme issue after last update #3909

Closed
opened 2026-02-05 07:50:45 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @davewatson91 on GitHub (Jul 12, 2023).

Attempted Debugging

  • I have read the debugging page

Searched GitHub Issues

  • I have searched GitHub for the issue.

Describe the Scenario

After updating to the latest release, my instance throws an error upon login.

It is setup to only allow login using Azure AD, and upon authorisation, throws the error below.

An Error Occurred
An unknown error occurred

I have done some troubleshooting, and believe this is because of a 'theme' I have applied (to allow access control based on user domain. The funcitons.php file contains:

<?php

use BookStack\Auth\User;
use BookStack\Theming\ThemeEvents;
use BookStack\Facades\Theme;

$domainRoleMapping = [
    'mine.com.au' => [1],
    'business.com.au' => [4, 5],
    'company.com.au' => [4, 6],
    'example2.com' => [4, 7],
    'example.com.au' => [4, 8],
    'default' => [4],
];

Theme::listen(ThemeEvents::AUTH_LOGIN, function ($authSystem, User $user) use ($domainRoleMapping) {
    $splitEmail = explode('@', $user->email);
    $roleIdsToMap = $domainRoleMapping[end($splitEmail)] ?? $domainRoleMapping['default'];
    $user->roles()->sync($roleIdsToMap);
});

The laravel.log file is giving me the error below. I'm not entirely sure what has changed or why this isn't working now - I'm not great with PHP (fumbled my way to making the above work, but troubleshooting is another level harder). Hoping someone might know what happened in the last update that may cause this?

production.ERROR: BookStack\Theming\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\Auth\User, BookStack\Users\Models\User given {"userId":3,"exception":"[object] (TypeError(code: 0): BookStack\Theming\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\Auth\User, BookStack\Users\Models\User given at /config/www/themes/karbonit/functions.php:16)

While I'm recieving the error, it does log in succesfully - but does land on the error page first.

Thanks all, really appreciate any help.

Exact BookStack Version

v23.06.1

Log Content

Details

[2023-07-12 01:15:39] production.ERROR: BookStack\Theming\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\Auth\User, BookStack\Users\Models\User given {"userId":3,"exception":"[object] (TypeError(code: 0): BookStack\\Theming\\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\\Auth\\User, BookStack\\Users\\Models\\User given at /config/www/themes/karbonit/functions.php:16)
[stacktrace]
#0 [internal function]: BookStack\\Theming\\ThemeService->{closure}()
#1 /app/www/app/Theming/ThemeService.php(40): call_user_func_array()
#2 /app/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): BookStack\\Theming\\ThemeService->dispatch()
#3 /app/www/app/Access/LoginService.php(47): Illuminate\\Support\\Facades\\Facade::__callStatic()
#4 /app/www/app/Access/SocialAuthService.php(145): BookStack\\Access\\LoginService->login()
#5 /app/www/app/Access/Controllers/SocialController.php(90): BookStack\\Access\\SocialAuthService->handleLoginCallback()
#6 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): BookStack\\Access\\Controllers\\SocialController->callback()
#7 /app/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#8 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#9 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#10 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\\Routing\\Route->run()
#11 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#12 /app/www/app/Http/Middleware/Localization.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\Localization->handle()
#14 /app/www/app/Http/Middleware/RunThemeActions.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\RunThemeActions->handle()
#16 /app/www/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\CheckEmailConfirmed->handle()
#18 /app/www/app/Http/Middleware/PreventAuthenticatedResponseCaching.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\PreventAuthenticatedResponseCaching->handle()
#20 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#22 /app/www/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#24 /app/www/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /app/www/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#26 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#27 /app/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#29 /app/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#31 /app/www/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\ApplyCspRules->handle()
#33 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\\Pipeline\\Pipeline->then()
#35 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\\Routing\\Router->runRoute()
#37 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch()
#39 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#40 /app/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /app/www/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#42 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\TrustProxies->handle()
#43 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#46 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#48 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#50 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#51 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then()
#52 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /app/www/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 {main}
"}

PHP Version

No response

Hosting Environment

Docker

Originally created by @davewatson91 on GitHub (Jul 12, 2023). ### Attempted Debugging - [X] I have read the debugging page ### Searched GitHub Issues - [X] I have searched GitHub for the issue. ### Describe the Scenario After updating to the latest release, my instance throws an error upon login. It is setup to only allow login using Azure AD, and upon authorisation, throws the error below. > An Error Occurred > An unknown error occurred I have done some troubleshooting, and believe this is because of a 'theme' I have applied (to allow access control based on user domain. The funcitons.php file contains: ```php <?php use BookStack\Auth\User; use BookStack\Theming\ThemeEvents; use BookStack\Facades\Theme; $domainRoleMapping = [ 'mine.com.au' => [1], 'business.com.au' => [4, 5], 'company.com.au' => [4, 6], 'example2.com' => [4, 7], 'example.com.au' => [4, 8], 'default' => [4], ]; Theme::listen(ThemeEvents::AUTH_LOGIN, function ($authSystem, User $user) use ($domainRoleMapping) { $splitEmail = explode('@', $user->email); $roleIdsToMap = $domainRoleMapping[end($splitEmail)] ?? $domainRoleMapping['default']; $user->roles()->sync($roleIdsToMap); }); ``` The laravel.log file is giving me the error below. I'm not entirely sure what has changed or why this isn't working now - I'm not great with PHP (fumbled my way to making the above work, but troubleshooting is another level harder). Hoping someone might know what happened in the last update that may cause this? > production.ERROR: BookStack\Theming\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\Auth\User, BookStack\Users\Models\User given {"userId":3,"exception":"[object] (TypeError(code: 0): BookStack\\Theming\\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\\Auth\\User, BookStack\\Users\\Models\\User given at /config/www/themes/karbonit/functions.php:16) While I'm recieving the error, it does log in succesfully - but does land on the error page first. Thanks all, really appreciate any help. ### Exact BookStack Version v23.06.1 ### Log Content <details><summary>Details</summary> <p> ```txt [2023-07-12 01:15:39] production.ERROR: BookStack\Theming\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\Auth\User, BookStack\Users\Models\User given {"userId":3,"exception":"[object] (TypeError(code: 0): BookStack\\Theming\\ThemeService::{closure}(): Argument #2 ($user) must be of type BookStack\\Auth\\User, BookStack\\Users\\Models\\User given at /config/www/themes/karbonit/functions.php:16) [stacktrace] #0 [internal function]: BookStack\\Theming\\ThemeService->{closure}() #1 /app/www/app/Theming/ThemeService.php(40): call_user_func_array() #2 /app/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): BookStack\\Theming\\ThemeService->dispatch() #3 /app/www/app/Access/LoginService.php(47): Illuminate\\Support\\Facades\\Facade::__callStatic() #4 /app/www/app/Access/SocialAuthService.php(145): BookStack\\Access\\LoginService->login() #5 /app/www/app/Access/Controllers/SocialController.php(90): BookStack\\Access\\SocialAuthService->handleLoginCallback() #6 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): BookStack\\Access\\Controllers\\SocialController->callback() #7 /app/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction() #8 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch() #9 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController() #10 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\\Routing\\Route->run() #11 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}() #12 /app/www/app/Http/Middleware/Localization.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #13 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\Localization->handle() #14 /app/www/app/Http/Middleware/RunThemeActions.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #15 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\RunThemeActions->handle() #16 /app/www/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #17 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\CheckEmailConfirmed->handle() #18 /app/www/app/Http/Middleware/PreventAuthenticatedResponseCaching.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #19 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\PreventAuthenticatedResponseCaching->handle() #20 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #21 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle() #22 /app/www/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #23 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle() #24 /app/www/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #25 /app/www/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest() #26 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle() #27 /app/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #28 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle() #29 /app/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #30 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle() #31 /app/www/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #32 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\ApplyCspRules->handle() #33 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #34 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\\Pipeline\\Pipeline->then() #35 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\\Routing\\Router->runRouteWithinStack() #36 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\\Routing\\Router->runRoute() #37 /app/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\\Routing\\Router->dispatchToRoute() #38 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch() #39 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}() #40 /app/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #41 /app/www/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle() #42 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\TrustProxies->handle() #43 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #44 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle() #45 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle() #46 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #47 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle() #48 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #49 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle() #50 /app/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #51 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then() #52 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter() #53 /app/www/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle() #54 {main} "} ``` </p> </details> ### PHP Version _No response_ ### Hosting Environment Docker
OVERLORD added the 🐕 Support label 2026-02-05 07:50:45 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Jul 12, 2023):

Hi @davewatson91,
Some internal files changed in the last release.

Change BookStack\Auth\User; to BookStack\Users\Models\User; on the third line of code.

@ssddanbrown commented on GitHub (Jul 12, 2023): Hi @davewatson91, Some internal files changed in the last release. Change `BookStack\Auth\User;` to `BookStack\Users\Models\User;` on the third line of code.
Author
Owner

@davewatson91 commented on GitHub (Jul 12, 2023):

Thankyou thankyou thankyou!

@davewatson91 commented on GitHub (Jul 12, 2023): Thankyou thankyou thankyou!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#3909