Repository navigation
Description
Title: Public Markdown previews fail with HTTP 500 when Deck is enabled: null userId in TextContextProviderFactory
<!--
Thanks for reporting issues back!
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
* You can also use the Issue Template app to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
-->
<!--- Please keep this note for other contributors -->
How to use GitHub
Please use the 👍 reaction to show that you are affected by the same issue.
Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
Subscribe to receive notifications on status change and new comments.
Describe the bug
Opening a Markdown file through a public, read-only folder share gets stuck on the loading screen when Deck is enabled.
The file is a regular Markdown document, unrelated to any Deck card. Disabling Deck makes the same anonymous preview work immediately. Opening the file as an authenticated user also works.
The public Text session is created successfully, but subsequent sync and save requests fail with HTTP 500:
OCA\Deck\Provider\TextContextProviderFactory::__construct():
Argument #5 ($userId) must be of type string, null givenThe following behavior was verified:
Deck | Access | Result -- | -- | -- Enabled | Anonymous public share | Loading screen; HTTP 500 Disabled | Anonymous public share | Works Enabled | Authenticated user | WorksPossible cause: the implementation introduced in PR #8558 injects TextContextProviderFactory into RegisterTextContextEventListener, although the listener only registers the factory's class name and does not use the injected instance. This appears to instantiate the factory prematurely during context registration, including for ordinary public file sessions. Its constructor requires a non-null string $userId, which is unavailable for anonymous requests.
Removing the unused constructor dependency from the registration listener looks like a possible fix, but this has not been tested locally.
To Reproduce
Steps to reproduce the behavior:
Enable Deck.
Share a folder containing a Markdown file using a public, read-only link.
Open the link without logging in.
Navigate to the Markdown file and click it.
Observe the persistent loading screen and HTTP 500 responses from the public Text
syncandsaveendpoints.Disable Deck and repeat the anonymous access: the same file displays successfully.
The failing anonymous access was reproduced from a separate virtual machine.
Expected behavior
Public Markdown previews should work while Deck is enabled, without requiring an authenticated Nextcloud user.
Screenshots
Not attached. Server exceptions and browser network results are included below.
Client details:
OS: Ubuntu Linux x86_64
Browser: Firefox
Version: 158.0
Device: Virtual machine
<details>
<summary>Server details</summary>
<!--
You can use the Issue Template application to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
-->
Operating system:
Arch Linux.
Web server:
Traefik reverse proxy in a Docker Compose deployment. Captured HTTP responses contain the server header nginx.
The deployment consists of a reverse proxy, a Nextcloud container, and a separate PostgreSQL container.
Database:
PostgreSQL, using the Docker image postgres:latest. The exact runtime version has not been recorded.
PHP version:
8.3.36, according to the HTTP response header.
Nextcloud version: (see Nextcloud admin page)
35.0.1; internal version: 35.0.1.1.
Where did you install Nextcloud from:
Arch Linux package installed using:
pacman -S nextcloudThe deployment is managed through Docker Compose.
Signing status:
The integrity check reports two extra files in the Nextcloud root directory:
Results
=======
- core
- EXTRA_FILE
- supervisord.pid
- supervisord.logList of activated apps:
Enabled:
- activity: 8.0.0
- admin_audit: 2.0.0
- app_api: 35.0.0
- appstore: 2.0.0
- bruteforcesettings: 8.0.0
- calendar: 6.6.3
- circles: 35.0.0
- cloud_federation_api: 2.0.0
- comments: 2.0.0
- contacts: 8.9.2
- contactsinteraction: 2.0.0
- dashboard: 8.0.0
- dav: 2.0.0
- deck: 1.19.1
- drawio: 4.3.9
- federatedfilesharing: 2.0.0
- federation: 2.0.0
- files: 3.0.0
- files_downloadlimit: 5.3.0
- files_lock: 35.0.1
- files_pdfviewer: 8.0.0
- files_reminders: 2.0.0
- files_sharing: 2.0.0
- files_trashbin: 2.0.0
- files_versions: 2.0.0
- logreader: 8.0.0
- lookup_server_connector: 2.0.0
- nextcloud_announcements: 7.0.0
- notifications: 8.0.1
- oauth2: 2.0.0
- office: 1.1.0
- password_policy: 7.0.0
- photos: 8.0.0
- polls: 9.3.0
- privacy: 7.0.0
- profile: 2.0.0
- provisioning_api: 2.0.0
- recommendations: 8.0.0
- related_resources: 6.0.0
- richdocuments: 12.0.1
- serverinfo: 7.0.0
- settings: 2.0.0
- sharebymail: 2.0.0
- sharing: 1.0.4
- spreed: 25.0.6
- support: 7.0.0
- survey_client: 7.0.0
- systemtags: 2.0.0
- text: 9.0.1
- theming: 3.0.0
- twofactor_backupcodes: 2.0.0
- twofactor_totp: 17.1.0
- updatenotification: 2.0.0
- user_status: 2.0.0
- viewer: 8.0.0
- weather_status: 2.0.0
- webhook_listeners: 2.0.0
- workflowengine: 3.0.0
Disabled:
- encryption: 3.0.1
- files_external: 2.0.0
- firstrunwizard: 8.0.0 (installed 5.0.0-dev.0)
- suspicious_login: 13.0.0
- twofactor_nextcloud_notification: 9.0.0
- user_ldap: 2.0.0Nextcloud configuration:
Configuration supplied during troubleshooting, with identifying values and credentials redacted:
<?php
$CONFIG = array (
'apps_paths' => array (
0 => array (
'path' => '/usr/share/webapps/nextcloud/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/nextcloud/apps',
'url' => '/wapps',
'writable' => true,
),
),
'instanceid' => '[REDACTED]',
'passwordsalt' => '[REDACTED]',
'secret' => '[REDACTED]',
'trusted_domains' => array (
0 => 'cloud.example.com',
),
'datadirectory' => '/opt/owncloud-data',
'overwrite.cli.url' => 'https://cloud.example.com',
'installed' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array (
'host' => 'redis',
'port' => 6379,
'password' => '[REDACTED]',
),
'filelocking.enabled' => 'true',
'dbtype' => 'pgsql',
'version' => '35.0.1.1',
'overwriteprotocol' => 'https',
'dbname' => '[REDACTED]',
'dbhost' => '[REDACTED]',
'dbport' => '',
'dbtableprefix' => 'oc_',
'dbuser' => '[REDACTED]',
'dbpassword' => '[REDACTED]',
'logtimezone' => 'UTC',
'theme' => '',
'loglevel' => 2,
'maintenance' => false,
);Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
LDAP is not used; user_ldap is disabled.
</details>
<details>
<summary>Logs</summary>
Nextcloud log (data/nextcloud.log)
Exception logged for the public sync request:
[index] Error: OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given in file '/usr/share/webapps/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20
POST /apps/text/public/session/<fileId>/sync
The same exception is logged for the public save requests:
[index] Error:
OCA\Deck\Provider\TextContextProviderFactory::__construct():
Argument #5 ($userId) must be of type string, null given
in file '/usr/share/webapps/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20
POST /apps/text/public/session/<fileId>/save
Browser log
Sanitized network excerpt:
PROPFIND /public.php/dav/files/<shareToken>/<path>/<file>.md
→ HTTP 207; content type: text/markdownPUT /apps/text/public/session/<fileId>/create
→ HTTP 200
→ Session response contains readOnly: truePOST /apps/text/public/session/<fileId>/sync
→ HTTP 500; Nextcloud "Internal Server Error" page
POST /apps/text/public/session/<fileId>/save
→ HTTP 500; Nextcloud "Internal Server Error" page
Disabling Deck restores the anonymous Markdown preview.
</details>
Title: Public Markdown previews fail with HTTP 500 when Deck is enabled: null userId in TextContextProviderFactoryHow to use GitHub
- Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Describe the bug
Opening a Markdown file through a public, read-only folder share gets stuck on the loading screen when Deck is enabled.
The file is a regular Markdown document, unrelated to any Deck card. Disabling Deck makes the same anonymous preview work immediately. Opening the file as an authenticated user also works.
The public Text session is created successfully, but subsequent sync and save requests fail with HTTP 500:
OCA\Deck\Provider\TextContextProviderFactory::__construct():
Argument #5 ($userId) must be of type string, null given
The following behavior was verified:
| Deck | Access | Result |
|---|---|---|
| Enabled | Anonymous public share | Loading screen; HTTP 500 |
| Disabled | Anonymous public share | Works |
| Enabled | Authenticated user | Works |
Possible cause: the implementation introduced in [PR #8558](https://github.com/nextcloud/deck/pull/8558/files) injects TextContextProviderFactory into RegisterTextContextEventListener, although the listener only registers the factory's class name and does not use the injected instance. This appears to instantiate the factory prematurely during context registration, including for ordinary public file sessions. Its constructor requires a non-null string $userId, which is unavailable for anonymous requests.
Removing the unused constructor dependency from the registration listener looks like a possible fix, but this has not been tested locally.
To Reproduce
Steps to reproduce the behavior:
- Enable Deck.
- Share a folder containing a Markdown file using a public, read-only link.
- Open the link without logging in.
- Navigate to the Markdown file and click it.
- Observe the persistent loading screen and HTTP 500 responses from the public Text
syncandsaveendpoints. - Disable Deck and repeat the anonymous access: the same file displays successfully.
The failing anonymous access was reproduced from a separate virtual machine.
Expected behavior
Public Markdown previews should work while Deck is enabled, without requiring an authenticated Nextcloud user.
Screenshots
Not attached. Server exceptions and browser network results are included below.
Client details:
- OS: Ubuntu Linux x86_64
- Browser: Firefox
- Version: 158.0
- Device: Virtual machine
Server details
Operating system:
Arch Linux.
Web server:
Traefik reverse proxy in a Docker Compose deployment. Captured HTTP responses contain the server header nginx.
The deployment consists of a reverse proxy, a Nextcloud container, and a separate PostgreSQL container.
Database:
PostgreSQL, using the Docker image postgres:latest. The exact runtime version has not been recorded.
PHP version:
8.3.36, according to the HTTP response header.
Nextcloud version: (see Nextcloud admin page)
35.0.1; internal version: 35.0.1.1.
Where did you install Nextcloud from:
Arch Linux package installed using:
pacman -S nextcloudThe deployment is managed through Docker Compose.
Signing status:
The integrity check reports two extra files in the Nextcloud root directory:
Results
=======
- core
- EXTRA_FILE
- supervisord.pid
- supervisord.log
List of activated apps:
Enabled:
- activity: 8.0.0
- admin_audit: 2.0.0
- app_api: 35.0.0
- appstore: 2.0.0
- bruteforcesettings: 8.0.0
- calendar: 6.6.3
- circles: 35.0.0
- cloud_federation_api: 2.0.0
- comments: 2.0.0
- contacts: 8.9.2
- contactsinteraction: 2.0.0
- dashboard: 8.0.0
- dav: 2.0.0
- deck: 1.19.1
- drawio: 4.3.9
- federatedfilesharing: 2.0.0
- federation: 2.0.0
- files: 3.0.0
- files_downloadlimit: 5.3.0
- files_lock: 35.0.1
- files_pdfviewer: 8.0.0
- files_reminders: 2.0.0
- files_sharing: 2.0.0
- files_trashbin: 2.0.0
- files_versions: 2.0.0
- logreader: 8.0.0
- lookup_server_connector: 2.0.0
- nextcloud_announcements: 7.0.0
- notifications: 8.0.1
- oauth2: 2.0.0
- office: 1.1.0
- password_policy: 7.0.0
- photos: 8.0.0
- polls: 9.3.0
- privacy: 7.0.0
- profile: 2.0.0
- provisioning_api: 2.0.0
- recommendations: 8.0.0
- related_resources: 6.0.0
- richdocuments: 12.0.1
- serverinfo: 7.0.0
- settings: 2.0.0
- sharebymail: 2.0.0
- sharing: 1.0.4
- spreed: 25.0.6
- support: 7.0.0
- survey_client: 7.0.0
- systemtags: 2.0.0
- text: 9.0.1
- theming: 3.0.0
- twofactor_backupcodes: 2.0.0
- twofactor_totp: 17.1.0
- updatenotification: 2.0.0
- user_status: 2.0.0
- viewer: 8.0.0
- weather_status: 2.0.0
- webhook_listeners: 2.0.0
- workflowengine: 3.0.0
Disabled:
- encryption: 3.0.1
- files_external: 2.0.0
- firstrunwizard: 8.0.0 (installed 5.0.0-dev.0)
- suspicious_login: 13.0.0
- twofactor_nextcloud_notification: 9.0.0
- user_ldap: 2.0.0
Nextcloud configuration:
Configuration supplied during troubleshooting, with identifying values and credentials redacted:
<?php
$CONFIG = array (
'apps_paths' => array (
0 => array (
'path' => '/usr/share/webapps/nextcloud/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/nextcloud/apps',
'url' => '/wapps',
'writable' => true,
),
),
'instanceid' => '[REDACTED]',
'passwordsalt' => '[REDACTED]',
'secret' => '[REDACTED]',
'trusted_domains' => array (
0 => 'cloud.example.com',
),
'datadirectory' => '/opt/owncloud-data',
'overwrite.cli.url' => 'https://cloud.example.com',
'installed' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array (
'host' => 'redis',
'port' => 6379,
'password' => '[REDACTED]',
),
'filelocking.enabled' => 'true',
'dbtype' => 'pgsql',
'version' => '35.0.1.1',
'overwriteprotocol' => 'https',
'dbname' => '[REDACTED]',
'dbhost' => '[REDACTED]',
'dbport' => '',
'dbtableprefix' => 'oc_',
'dbuser' => '[REDACTED]',
'dbpassword' => '[REDACTED]',
'logtimezone' => 'UTC',
'theme' => '',
'loglevel' => 2,
'maintenance' => false,
);Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
LDAP is not used; user_ldap is disabled.
Logs
Nextcloud log (data/nextcloud.log)
Exception logged for the public sync request:
[index] Error:
OCA\Deck\Provider\TextContextProviderFactory::__construct():
Argument #5 ($userId) must be of type string, null given
in file '/usr/share/webapps/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20
POST /apps/text/public/session/<fileId>/sync
The same exception is logged for the public save requests:
[index] Error:
OCA\Deck\Provider\TextContextProviderFactory::__construct():
Argument #5 ($userId) must be of type string, null given
in file '/usr/share/webapps/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20
POST /apps/text/public/session/<fileId>/save
Browser log
Sanitized network excerpt:
PROPFIND /public.php/dav/files/<shareToken>/<path>/<file>.md
→ HTTP 207; content type: text/markdown
PUT /apps/text/public/session/<fileId>/create
→ HTTP 200
→ Session response contains readOnly: true
POST /apps/text/public/session/<fileId>/sync
→ HTTP 500; Nextcloud "Internal Server Error" page
POST /apps/text/public/session/<fileId>/save
→ HTTP 500; Nextcloud "Internal Server Error" page
Disabling Deck restores the anonymous Markdown preview.
Activity
gyarakilaszlo commentedon Oct 30, 2026
I can confirm this issue. When the Deck is enabled, public shared Markdown text files cannot be opened. I can see this error message in the Nextcloud log:
{
"reqId": "N1K1ESsdVpRLXLnp9GgG",
"level": 3,
"time": "2026-10-30T12:59:16+00:00",
"remoteAddr": "xxx.xxx.xxx.xxx",
"user": "--",
"app": "index",
"method": "POST",
"url": "/apps/text/public/session/146394573391282177/save",
"scriptName": "/index.php",
"message": "OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given in file '/var/www/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:159.0) Gecko/20100101 Firefox/159.0",
"version": "35.0.2.2",
"exception": {
"Exception": "Exception",
"Message": "OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given in file '/var/www/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20",
"Code": 0,
"Trace": [
{
"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
"line": 138,
"function": "dispatch",
"class": "OC\AppFramework\Http\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Route/Router.php",
"line": 324,
"function": "main",
"class": "OC\AppFramework\App",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/OC.php",
"line": 1238,
"function": "match",
"class": "OC\Route\Router",
"type": "->"
},
{
"file": "/var/www/nextcloud/index.php",
"line": 28,
"function": "handleRequest",
"class": "OC",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/OC.php",
"line": 1403,
"function": "{closure}",
"args": [
"*** sensitive parameters replaced "
]
},
{
"file": "/var/www/nextcloud/index.php",
"line": 25,
"function": "handleRequests",
"class": "OC",
"type": "::"
}
],
"File": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"Line": 124,
"Previous": {
"Exception": "TypeError",
"Message": "OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given",
"Code": 0,
"Trace": [
{
"function": "__construct",
"class": "OCA\Deck\Provider\TextContextProviderFactory",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 75,
"function": "newInstanceArgs",
"class": "ReflectionClass",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 133,
"function": "buildClass",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 160,
"function": "resolve",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 378,
"function": "query",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 347,
"function": "queryNoFallback",
"class": "OC\AppFramework\DependencyInjection\DIContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 96,
"function": "query",
"class": "OC\AppFramework\DependencyInjection\DIContainer",
"type": "->"
},
{
"function": "OC\AppFramework\Utility\{closure}",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->",
"args": [
" sensitive parameters replaced "
]
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 83,
"function": "array_map"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 75,
"function": "buildClassConstructorParameters",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 133,
"function": "buildClass",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 160,
"function": "resolve",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 378,
"function": "query",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/ServerContainer.php",
"line": 140,
"function": "queryNoFallback",
"class": "OC\AppFramework\DependencyInjection\DIContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 46,
"function": "query",
"class": "OC\ServerContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php",
"line": 41,
"function": "get",
"class": "OC\AppFramework\Utility\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 206,
"function": "__invoke",
"class": "OC\EventDispatcher\ServiceEventListener",
"type": "->"
},
{
"file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 56,
"function": "callListeners",
"class": "Symfony\Component\EventDispatcher\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php",
"line": 74,
"function": "dispatch",
"class": "Symfony\Component\EventDispatcher\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php",
"line": 87,
"function": "dispatch",
"class": "OC\EventDispatcher\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/text/lib/Context/ContextManager.php",
"line": 34,
"function": "dispatchTyped",
"class": "OC\EventDispatcher\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/text/lib/Context/ContextManager.php",
"line": 55,
"function": "getContexts",
"class": "OCA\Text\Context\ContextManager",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/text/lib/Service/ApiService.php",
"line": 197,
"function": "getContext",
"class": "OCA\Text\Context\ContextManager",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/text/lib/Controller/PublicSessionController.php",
"line": 112,
"function": "save",
"class": "OCA\Text\Service\ApiService",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 198,
"function": "save",
"class": "OCA\Text\Controller\PublicSessionController",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 86,
"function": "executeController",
"class": "OC\AppFramework\Http\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
"line": 138,
"function": "dispatch",
"class": "OC\AppFramework\Http\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Route/Router.php",
"line": 324,
"function": "main",
"class": "OC\AppFramework\App",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/OC.php",
"line": 1238,
"function": "match",
"class": "OC\Route\Router",
"type": "->"
},
{
"file": "/var/www/nextcloud/index.php",
"line": 28,
"function": "handleRequest",
"class": "OC",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/OC.php",
"line": 1403,
"function": "{closure}",
"args": [
" sensitive parameters replaced ***"
]
},
{
"file": "/var/www/nextcloud/index.php",
"line": 25,
"function": "handleRequests",
"class": "OC",
"type": "::"
}
],
"File": "/var/www/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php",
"Line": 20
},
"message": "OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given in file '/var/www/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20",
"CustomMessage": "OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given in file '/var/www/nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php' line 20"
},
"id": "6ae494d3c144d"
}
wansing commentedon Nov 4, 2026
Yeah, can confirm the issue here, too. Another day, another Nextcloud regression.