0

We are running a self-hosted ActiveCollab 6.0.7 instance.

When trying to request the notification API GET https://[host]/api/v1/notifications with our API token it returns a Status 500 Internal Server Error with the following data:

{
    "type": "ReflectionException",
    "message": "Class  does not exist",
    "code": -1,
    "file": "/activecollab/6.0.7/angie/frameworks/notifications/models/UserNotificationsCollection.php",
    "line": 115,
    "trace": "#0 /activecollab/6.0.7/angie/frameworks/notifications/models/UserNotificationsCollection.php(115): ReflectionClass->__construct('')\n#1 /activecollab/6.0.7/angie/frameworks/notifications/models/UserNotificationsCollection.php(94): UserNotificationsCollection->preloadCounts(Array)\n#2 /activecollab/6.0.7/angie/src/Angie/Http/Encoder/Encoder.php(207): UserNotificationsCollection->execute()\n#3 /activecollab/6.0.7/angie/src/Angie/Http/Encoder/Encoder.php(110): Angie\\Http\\Encoder\\Encoder->encodeDataCollection(Object(UserNotificationsCollection), 0)\n#4 /activecollab/6.0.7/angie/src/Angie/Http/Encoder/Encoder.php(90): Angie\\Http\\Encoder\\Encoder->encodeDataToJson(Object(UserNotificationsCollection), Object(Angie\\Http\\Response))\n#5 /activecollab/6.0.7/angie/src/Angie/Middleware/ActionResultEncoderMiddleware.php(46): Angie\\Http\\Encoder\\Encoder->encode(Object(UserNotificationsCollection), Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#6 [internal function]: Angie\\Middleware\\ActionResultEncoderMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#7 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\ActionResultEncoderMiddleware), Array)\n#8 /activecollab/6.0.7/angie/src/Angie/Middleware/ControllerActionMiddleware.php(110): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#9 [internal function]: Angie\\Middleware\\ControllerActionMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#10 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\ControllerActionMiddleware), Array)\n#11 /activecollab/6.0.7/angie/src/Angie/Middleware/RouterMiddleware.php(72): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#12 [internal function]: Angie\\Middleware\\RouterMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#13 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\RouterMiddleware), Array)\n#14 /activecollab/6.0.7/angie/src/Angie/Middleware/EtagMiddleware.php(74): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#15 [internal function]: Angie\\Middleware\\EtagMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#16 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\EtagMiddleware), Array)\n#17 /activecollab/6.0.7/angie/src/Angie/Middleware/CsrfValidationMiddleware.php(77): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#18 [internal function]: Angie\\Middleware\\CsrfValidationMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#19 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\CsrfValidationMiddleware), Array)\n#20 /activecollab/6.0.7/vendor/activecollab/authentication/src/Authentication.php(106): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#21 [internal function]: ActiveCollab\\Authentication\\Authentication->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#22 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Authentication), Array)\n#23 /activecollab/6.0.7/angie/src/Angie/Middleware/ApplicationEnvironmentMiddleware.php(29): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#24 [internal function]: Angie\\Middleware\\ApplicationEnvironmentMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#25 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\ApplicationEnvironmentMiddleware), Array)\n#26 /activecollab/6.0.7/angie/src/Angie/Middleware/FirewallMiddleware.php(71): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#27 [internal function]: Angie\\Middleware\\FirewallMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#28 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\FirewallMiddleware), Array)\n#29 /activecollab/6.0.7/angie/src/Angie/Middleware/IpAddressMiddleware.php(107): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#30 [internal function]: Angie\\Middleware\\IpAddressMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#31 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\IpAddressMiddleware), Array)\n#32 /activecollab/6.0.7/angie/src/Angie/Middleware/UserAgentMiddleware.php(67): ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#33 [internal function]: Angie\\Middleware\\UserAgentMiddleware->__invoke(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response), Object(Closure))\n#34 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(90): call_user_func_array(Object(Angie\\Middleware\\UserAgentMiddleware), Array)\n#35 [internal function]: ActiveCollab\\MiddlewareStack\\MiddlewareStack->ActiveCollab\\MiddlewareStack\\{closure}(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#36 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(137): call_user_func_array(Object(Closure), Array)\n#37 /activecollab/6.0.7/vendor/activecollab/middlewarestack/src/MiddlewareStack.php(49): ActiveCollab\\MiddlewareStack\\MiddlewareStack->callMiddlewareStack(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#38 /activecollab/6.0.7/angie/src/Angie/Http/RequestHandler/RequestHandler.php(164): ActiveCollab\\MiddlewareStack\\MiddlewareStack->process(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#39 /activecollab/6.0.7/angie/classes/application/AngieApplication.class.php(4013): Angie\\Http\\RequestHandler\\RequestHandler->handleRequest(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#40 /activecollab/6.0.7/angie/classes/application/AngieApplication.class.php(3978): AngieApplication::executeHttpMiddlewareStack(Object(Angie\\Http\\Request), Object(Angie\\Http\\Response))\n#41 /public/api.php(19): AngieApplication::handleHttpRequest()\n#42 {main}"
}

The API documentation hasn't been updated in a while, so is this still supposed to work or is the notification API deprecated?

Jovan
  • 133
  • 8
  • Hello Jovan. There appears to be notification that has no context, and that confuses the system. What does this query return: `SELECT DISTINCT type FROM notifications WHERE parent_type = '';`? – Ilija Jan 20 '19 at 18:27
  • @llja your query gives me no results. But we have many entries with a `parent_type` of `NULL` so if I query for `NULL` `parent_type`s, I get this list: `BounceEmailNotification`, `MorningPaperNotification`, `FailedLoginNotification`, `FeedbackNotification` – Jovan Jan 21 '19 at 16:07

0 Answers0