Does Nextcloud Office (Euro Office) run natively with the DocumentserverCommunity app or not?

Unfortunately, I don’t quite understand the situation.

My setup:
“Nextcloud Hub 26 Winter (33.0.8)” (native on Debian with Apache as the web server)
“documentserver_community 0.4.0”
“onlyoffice 10.1.2”

I have been using the NC ONLYOFFICE app for quite some time in conjunction with Nextcloud’s internal DocumentserverCommunity (the Nextcloud “documentserver_community” app itself, not a standalone document server).

I rely on this solution because I need to edit documents that aren’t stored within Nextcloud itself but rather on an SMB share connected via an “external folder” (using “save in session” or “Apache Kerberos” for user credentials). Unfortunately, this isn’t possible with solutions other than the “NC DocumentserverCommunity app.”

Up until now, it ran more or less satisfactorily—aside from a few old, unresolved bugs and a new bug that recently even led to data loss (something nobody wants). Many of these issues were fixed in the new DocumentserverCommunity app version 0.4.0 (I’m really happy about that), even though a few new ones have cropped up.

Because one of the developers wrote to me stating that (documentserver_community)

“v0.4.0 actually switch[es] to Euro Office,”

I updated to “eurooffice 11.0.5” and disabled “onlyoffice 10.1.2.”
However, I can’t get EuroOffice to run because the connection test to the internal document server (the app) fails. If I switch back to OnlyOffice, it works.

This problem has existed ever since the EuroOffice app for NC became available. Until now, I had always assumed that the two products simply weren’t ready to work together yet—though the developer claims they now are. Or did I misunderstand something?

What am I doing wrong? Is this a bug or a missing feature?

I would expect the Nextcloud Office Euroffice connetor app to work with the Euroffice-based documentserver_ community app, though I have not tried it. I don’t believe there is any sort of auto configuration in place currently for it. I’d expect to have to enter a Server URL like https://<nextcloud_server>/apps/documentserver_community in the connector settings for it to work

What’s the precise error message/ log entry?

I’d expect to have to enter a Server URL like https://<nextcloud_server>/apps/documentserver_community in the connector settings for it to work

The EuroOffice connector uses the same path as the OnlyOffice connector, following this format:

https://sub.domain.tld/index.php/apps/documentserver_community/

This path was entered exactly as described immediately after installing the EuroOffice connector app. However, when I click “Save” to apply the setting (again), I receive the following error message:

Error connecting (Server error: GET https://sub.domain.tld/index.php/apps/documentserver_community/healthcheck resulted in a 500 Internal Server Error response:

Addendum:

The same applies to:
https://sub.domain.tld/index.php/apps/documentserver_community/

Please check your full server log entry and/or possibly web server error log for the details of this error.

{
“reqId”: “aqx0_UOsnm37QobRiDFqgwAAAAY”,
“level”: 3,
“time”: “2026-09-17T23:17:18+00:00”,
“remoteAddr”: “62.54.176.36”,
“user”: “D3C54344-67A0-4264-B5AE-8669462A5638”,
“app”: “eurooffice”,
“method”: “PUT”,
“url”: “/index.php/apps/eurooffice/ajax/settings/address”,
“scriptName”: “/index.php”,
“message”: “healthcheckRequest on check error”,
“userAgent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15”,
“version”: “33.0.9.1”,
“exception”: {
“Exception”: “GuzzleHttp\Exception\ServerException”,
“Message”: “Server error: GET https://sub.domain.tls/apps/documentserver_community/healthcheck resulted in a 500 Internal Server Error response:\n\n<html class="ng-csp" data-placeholder-focus="false" lang="de" data-locale="de_DE" translate="no" >\n\t<hea (truncated…)\n”,
“Code”: 500,
“Trace”: [
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php”,
“line”: 72,
“function”: “create”,
“class”: “GuzzleHttp\Exception\RequestException”,
“type”: “::”,
“args”: [
“*** sensitive parameters replaced "
]
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 209,
“function”: “GuzzleHttp\{closure}”,
“class”: “GuzzleHttp\Middleware”,
“type”: “::”,
“args”: [
"
sensitive parameters replaced "
]
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 158,
“function”: “callHandler”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “::”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php”,
“line”: 52,
“function”: “GuzzleHttp\Promise\{closure}”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “::”,
“args”: [
"
sensitive parameters replaced "
]
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 251,
“function”: “run”,
“class”: “GuzzleHttp\Promise\TaskQueue”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 227,
“function”: “invokeWaitFn”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 272,
“function”: “waitIfPending”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 229,
“function”: “invokeWaitList”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php”,
“line”: 69,
“function”: “waitIfPending”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php”,
“line”: 273,
“function”: “wait”,
“class”: “GuzzleHttp\Promise\Promise”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/Http/Client/Client.php”,
“line”: 219,
“function”: “request”,
“class”: “GuzzleHttp\Client”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/DocumentService.php”,
“line”: 373,
“function”: “get”,
“class”: “OC\Http\Client\Client”,
“type”: “->”,
“args”: [
"
sensitive parameters replaced ***”
]
},
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/DocumentService.php”,
“line”: 257,
“function”: “request”,
“class”: “OCA\Eurooffice\DocumentService”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/DocumentService.php”,
“line”: 397,
“function”: “healthcheckRequest”,
“class”: “OCA\Eurooffice\DocumentService”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/Controller/SettingsController.php”,
“line”: 137,
“function”: “checkDocServiceUrl”,
“class”: “OCA\Eurooffice\DocumentService”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php”,
“line”: 205,
“function”: “saveAddress”,
“class”: “OCA\Eurooffice\Controller\SettingsController”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php”,
“line”: 118,
“function”: “executeController”,
“class”: “OC\AppFramework\Http\Dispatcher”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/App.php”,
“line”: 153,
“function”: “dispatch”,
“class”: “OC\AppFramework\Http\Dispatcher”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/Route/Router.php”,
“line”: 321,
“function”: “main”,
“class”: “OC\AppFramework\App”,
“type”: “::”
},
{
“file”: “/var/www/nextcloud/lib/base.php”,
“line”: 1155,
“function”: “match”,
“class”: “OC\Route\Router”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/index.php”,
“line”: 25,
“function”: “handleRequest”,
“class”: “OC”,
“type”: “::”
}
],
“File”: “/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php”,
“Line”: 115,
“message”: “healthcheckRequest on check error”,
“exception”: “{"class":"GuzzleHttp\Exception\ServerException","message":"Server error: GET https://sub.domain.tls/apps/documentserver_community/healthcheck resulted in a 500 Internal Server Error response:\n\n<html class=\"ng-csp\" data-placeholder-focus=\"false\" lang=\"de\" data-locale=\"de_DE\" translate=\"no\" >\n\t<hea (truncated…)\n","code":500,"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php:115","trace":"#0 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\Exception\RequestException::create()\n#1 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\Middleware::GuzzleHttp\{closure}()\n#2 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler()\n#3 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()\n#4 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run()\n#5 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn()\n#6 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending()\n#7 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList()\n#8 /var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending()\n#9 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(273): GuzzleHttp\Promise\Promise->wait()\n#10 /var/www/nextcloud/lib/private/Http/Client/Client.php(219): GuzzleHttp\Client->request()\n#11 /var/www/nextcloud/apps/eurooffice/lib/DocumentService.php(373): OC\Http\Client\Client->get()\n#12 /var/www/nextcloud/apps/eurooffice/lib/DocumentService.php(257): OCA\Eurooffice\DocumentService->request()\n#13 /var/www/nextcloud/apps/eurooffice/lib/DocumentService.php(397): OCA\Eurooffice\DocumentService->healthcheckRequest()\n#14 /var/www/nextcloud/apps/eurooffice/lib/Controller/SettingsController.php(137): OCA\Eurooffice\DocumentService->checkDocServiceUrl()\n#15 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\Eurooffice\Controller\SettingsController->saveAddress()\n#16 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\AppFramework\Http\Dispatcher->executeController()\n#17 /var/www/nextcloud/lib/private/AppFramework/App.php(153): OC\AppFramework\Http\Dispatcher->dispatch()\n#18 /var/www/nextcloud/lib/private/Route/Router.php(321): OC\AppFramework\App::main()\n#19 /var/www/nextcloud/lib/base.php(1155): OC\Route\Router->match()\n#20 /var/www/nextcloud/index.php(25): OC::handleRequest()\n#21 {main}"}”,
“CustomMessage”: “healthcheckRequest on check error”
}
}

{
“reqId”: “aqx0_uaDiQy_P5PyYgpNdAAAAAI”,
“level”: 3,
“time”: “2026-09-17T23:17:18+00:00”,
“remoteAddr”: “192.168.253.7”,
“user”: “–”,
“app”: “index”,
“method”: “GET”,
“url”: “/apps/documentserver_community/healthcheck”,
“scriptName”: “/index.php”,
“message”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class "OCA\Onlyoffice\AppConfig" does not exist”,
“userAgent”: “Nextcloud-Server-Crawler/33.0.9”,
“version”: “33.0.9.1”,
“exception”: {
“Exception”: “OC\AppFramework\Utility\QueryNotFoundException”,
“Message”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class "OCA\Onlyoffice\AppConfig" does not exist”,
“Code”: 0,
“Trace”: [
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php”,
“line”: 157,
“function”: “resolve”,
“class”: “OC\AppFramework\Utility\SimpleContainer”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php”,
“line”: 357,
“function”: “query”,
“class”: “OC\AppFramework\Utility\SimpleContainer”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php”,
“line”: 327,
“function”: “queryNoFallback”,
“class”: “OC\AppFramework\DependencyInjection\DIContainer”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/App.php”,
“line”: 133,
“function”: “query”,
“class”: “OC\AppFramework\DependencyInjection\DIContainer”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/Route/Router.php”,
“line”: 321,
“function”: “main”,
“class”: “OC\AppFramework\App”,
“type”: “::”
},
{
“file”: “/var/www/nextcloud/lib/base.php”,
“line”: 1155,
“function”: “match”,
“class”: “OC\Route\Router”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/index.php”,
“line”: 25,
“function”: “handleRequest”,
“class”: “OC”,
“type”: “::”
}
],
“File”: “/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php”,
“Line”: 138,
“message”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class "OCA\Onlyoffice\AppConfig" does not exist”,
“exception”: “{"class":"OC\AppFramework\Utility\QueryNotFoundException","message":"Could not resolve OCA\DocumentServer\Controller\DocumentController! Class \"OCA\Onlyoffice\AppConfig\" does not exist","code":0,"file":"/var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:138","trace":"#0 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(157): OC\AppFramework\Utility\SimpleContainer->resolve()\n#1 /var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php(357): OC\AppFramework\Utility\SimpleContainer->query()\n#2 /var/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php(327): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback()\n#3 /var/www/nextcloud/lib/private/AppFramework/App.php(133): OC\AppFramework\DependencyInjection\DIContainer->query()\n#4 /var/www/nextcloud/lib/private/Route/Router.php(321): OC\AppFramework\App::main()\n#5 /var/www/nextcloud/lib/base.php(1155): OC\Route\Router->match()\n#6 /var/www/nextcloud/index.php(25): OC::handleRequest()\n#7 {main}"}”,
“CustomMessage”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class "OCA\Onlyoffice\AppConfig" does not exist”
}
}

{
“reqId”: “aqx0_HiEYaaHnd7nyFFgtQAAAAA”,
“level”: 3,
“time”: “2026-09-17T23:17:16+00:00”,
“remoteAddr”: “62.54.176.36”,
“user”: “D3C54344-67A0-4264-B5AE-8669462A5638”,
“app”: “eurooffice”,
“method”: “GET”,
“url”: “/index.php/apps/eurooffice/ajax/fonts”,
“scriptName”: “/index.php”,
“message”: “FontController::index error”,
“userAgent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15”,
“version”: “33.0.9.1”,
“exception”: {
“Exception”: “Exception”,
“Message”: “JWT secret not configured — set the document server secret in EuroOffice settings”,
“Code”: 0,
“Trace”: [
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php”,
“line”: 123,
“function”: “makeServiceToken”,
“class”: “OCA\Eurooffice\Controller\FontController”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php”,
“line”: 178,
“function”: “httpOpts”,
“class”: “OCA\Eurooffice\Controller\FontController”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php”,
“line”: 205,
“function”: “index”,
“class”: “OCA\Eurooffice\Controller\FontController”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php”,
“line”: 118,
“function”: “executeController”,
“class”: “OC\AppFramework\Http\Dispatcher”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/AppFramework/App.php”,
“line”: 153,
“function”: “dispatch”,
“class”: “OC\AppFramework\Http\Dispatcher”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/lib/private/Route/Router.php”,
“line”: 321,
“function”: “main”,
“class”: “OC\AppFramework\App”,
“type”: “::”
},
{
“file”: “/var/www/nextcloud/lib/base.php”,
“line”: 1155,
“function”: “match”,
“class”: “OC\Route\Router”,
“type”: “->”
},
{
“file”: “/var/www/nextcloud/index.php”,
“line”: 25,
“function”: “handleRequest”,
“class”: “OC”,
“type”: “::”
}
],
“File”: “/var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php”,
“Line”: 102,
“message”: “FontController::index error”,
“exception”: “{"class":"Exception","message":"JWT secret not configured — set the document server secret in EuroOffice settings","code":0,"file":"/var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php:102","trace":"#0 /var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php(123): OCA\Eurooffice\Controller\FontController->makeServiceToken()\n#1 /var/www/nextcloud/apps/eurooffice/lib/Controller/FontController.php(178): OCA\Eurooffice\Controller\FontController->httpOpts()\n#2 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OCA\Eurooffice\Controller\FontController->index()\n#3 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\AppFramework\Http\Dispatcher->executeController()\n#4 /var/www/nextcloud/lib/private/AppFramework/App.php(153): OC\AppFramework\Http\Dispatcher->dispatch()\n#5 /var/www/nextcloud/lib/private/Route/Router.php(321): OC\AppFramework\App::main()\n#6 /var/www/nextcloud/lib/base.php(1155): OC\Route\Router->match()\n#7 /var/www/nextcloud/index.php(25): OC::handleRequest()\n#8 {main}"}”,
“CustomMessage”: “FontController::index error”
}
}

Apology regarding the scope

“message”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class “OCA\Onlyoffice\AppConfig” does not exist”,

“CustomMessage”: “Could not resolve OCA\DocumentServer\Controller\DocumentController! Class “OCA\Onlyoffice\AppConfig” does not exist”

“OCA\Onlyoffice\AppConfig”
Shouldn’t this perhaps be “OCA\Eurooffice\AppConfig”?