{"record":{"id":"047b9f55325aa1b9","repo":"phalcon/cphalcon","slug":"after-handler-is-not-callable","errorCode":null,"errorMessage":"'after' handler is not callable","messagePattern":"'after' handler is not callable","errorType":"exception","errorClass":"Phalcon\\Mvc\\Micro\\Exceptions\\HandlerNotCallable","httpStatus":null,"severity":"error","filePath":"phalcon/Mvc/Micro.zep","lineNumber":580,"sourceCode":"                    this->eventsManager->fire(\"micro:afterExecuteRoute\", this);\n                }\n\n                let afterHandlers = this->afterHandlers;\n\n                let this->stopped = false;\n\n                /**\n                 * Calls the after handlers\n                 */\n                for after in afterHandlers {\n                    if typeof after === \"object\" && after instanceof MiddlewareInterface {\n                        /**\n                         * Call the middleware\n                         */\n                        let status = after->call(this);\n                    } else {\n                        if unlikely !is_callable(after) {\n                            throw new HandlerNotCallable(\"after\");\n                        }\n\n                        let status = call_user_func(after);\n                    }\n\n                    /**\n                     * break the execution if the middleware was stopped\n                     */\n                    if this->stopped {\n                        break;\n                    }\n                }\n            } else {\n                 /**\n                  * Calling beforeNotFound event\n                  */\n                if this->eventsManager !== null {\n                    if this->eventsManager->fire(\"micro:beforeNotFound\", this) === false {","sourceCodeStart":562,"sourceCodeEnd":598,"githubUrl":"https://github.com/phalcon/cphalcon/blob/b7419de9cd0a8a3f48441ead84c9f8415d463e25/phalcon/Mvc/Micro.zep#L562-L598","documentation":"Error \"'after' handler is not callable\" thrown in phalcon/cphalcon.","triggerScenarios":"Thrown at phalcon/Mvc/Micro.zep:580 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b7419de9cd0a8a3f48441ead84c9f8415d463e25","analyzedAt":"2026-08-21T06:21:18.811Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}