{ "error": { "description": "Fatal error: error in exception handling while reporting exception.", "message": "Another service invoked by this service using intra-service communication resulted in an error. See details for involved request and resulting error. HTTP status code is dynamically inherited, but defaults to 500.", "details": { "serviceName": "error-reporting", "serviceURI": "https:\/\/error-reporting.api.ronald.katedevelopment.com\/register", "error": { "code": "KATE-ErrorHandler", "description": "See error details", "details": { "fatal": { "level": 3, "type": "ERROR:FATAL", "msg": "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "file": "\/app\/Commons\/KateAPI\/Authenticators\/NoAuth.php", "line": 22, "trace": [ "01: Error raised\n \\-> Line 0000 in \n(Skipped 3 internal calls)\n" ], "vars": [ 1, "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "\/app\/Commons\/KateAPI\/Authenticators\/NoAuth.php", 22 ], "code": { "17": " * what RequestProcessor gates on \u2014 while isAuthenticated() reports whether there is an identity", "18": " * behind the request, which for NoAuth there never is. Keeping isAuthenticated() false is what lets", "19": " * `if (!$auth->isAuthenticated())` guards in endpoint bodies keep working: before repeatable #[Auth]", "20": " * existed, an #[Auth(false)] route registered no authenticator at all and those guards saw null.", "21": " *\/", "22": "class NoAuth implements IAuth {", "23": " use AuthorizesOnPrivilegeCNF;", "24": "", "25": " public function __construct(?PrivilegeCNF $requiredFlags = null) {", "26": " $this->requiredFlags = $requiredFlags ?? PrivilegeCNF::none();", "27": " }" }, "mark": [] }, "preceding-non-fatal": [] } } }, "file": "\/app\/Commons\/KateIntraService\/Request.php", "line": 293, "trace": [ { "file": "\/app\/Commons\/KateAPI\/ErrorReporting\/ErrorReporting.php", "line": 273, "function": "execute", "class": "KATEv2\\Commons\\KateIntraService\\Request", "type": "->", "args": [] }, { "file": "\/app\/Commons\/KateAPI\/KateAPIRunner.php", "line": 197, "function": "reportException", "class": "KATEv2\\Commons\\KateAPI\\ErrorReporting\\ErrorReporting", "type": "::", "args": [ {}, {} ] }, { "function": "onKateErrorHandlerError", "class": "KATEv2\\Commons\\KateAPI\\KateAPIRunner", "type": "::", "args": [ { "fatal": { "errLevel": 1, "level": 3, "type": "ERROR:FATAL", "msg": "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "file": "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", "line": 14, "trace": [ "01: Error raised\n \\-> Line 0000 in \n(Skipped 3 internal calls)\n" ], "vars": [ 1, "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", 14 ], "code": { "9": "use KATEv2\\Commons\\KateAPI\\Authenticators\\PrivilegeCNF;", "10": "use KATEv2\\Commons\\KateAPI\\Exceptions\\AuthenticationFailedException;", "11": "use KATEv2\\Commons\\KateAPI\\KateAPIRunner;", "12": "use KATEv2\\Commons\\KateAPI\\Request;", "13": "", "14": "abstract class APIKeyAuth implements IAuth {", "15": " use AuthorizesOnPrivilegeCNF;", "16": "", "17": " protected KateAPIRunner $runner;", "18": "", "19": " protected bool $isAuthenticated = false;" }, "mark": [] }, "preceding-non-fatal": [] } ] }, { "file": "\/app\/Commons\/KateErrorHandler\/ErrorHandler.php", "line": 346, "function": "call_user_func", "args": [ [ "KATEv2\\Commons\\KateAPI\\KateAPIRunner", "onKateErrorHandlerError" ], { "fatal": { "errLevel": 1, "level": 3, "type": "ERROR:FATAL", "msg": "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "file": "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", "line": 14, "trace": [ "01: Error raised\n \\-> Line 0000 in \n(Skipped 3 internal calls)\n" ], "vars": [ 1, "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", 14 ], "code": { "9": "use KATEv2\\Commons\\KateAPI\\Authenticators\\PrivilegeCNF;", "10": "use KATEv2\\Commons\\KateAPI\\Exceptions\\AuthenticationFailedException;", "11": "use KATEv2\\Commons\\KateAPI\\KateAPIRunner;", "12": "use KATEv2\\Commons\\KateAPI\\Request;", "13": "", "14": "abstract class APIKeyAuth implements IAuth {", "15": " use AuthorizesOnPrivilegeCNF;", "16": "", "17": " protected KateAPIRunner $runner;", "18": "", "19": " protected bool $isAuthenticated = false;" }, "mark": [] }, "preceding-non-fatal": [] } ] }, { "file": "\/app\/Commons\/KateErrorHandler\/ErrorHandler.php", "line": 196, "function": "presentErrors", "class": "KATEv2\\Commons\\KateErrorHandler\\ErrorHandler", "type": "->", "args": [ { "errLevel": 1, "level": 3, "type": "ERROR:FATAL", "msg": "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "file": "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", "line": 14, "trace": "#01: Error raised\n \\-> Line 0000 in \n(Skipped 3 internal calls)\n", "vars": [ 1, "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", 14 ], "code": { "9": "use KATEv2\\Commons\\KateAPI\\Authenticators\\PrivilegeCNF;", "10": "use KATEv2\\Commons\\KateAPI\\Exceptions\\AuthenticationFailedException;", "11": "use KATEv2\\Commons\\KateAPI\\KateAPIRunner;", "12": "use KATEv2\\Commons\\KateAPI\\Request;", "13": "", "14": "abstract class APIKeyAuth implements IAuth {", "15": " use AuthorizesOnPrivilegeCNF;", "16": "", "17": " protected KateAPIRunner $runner;", "18": "", "19": " protected bool $isAuthenticated = false;" }, "mark": [] } ] }, { "file": "\/app\/Commons\/KateErrorHandler\/ErrorHandler.php", "line": 236, "function": "onError", "class": "KATEv2\\Commons\\KateErrorHandler\\ErrorHandler", "type": "->", "args": [ 1, "Trait \"KATEv2\\Commons\\KateAPI\\Authenticators\\AuthorizesOnPrivilegeCNF\" not found", "\/app\/InboundPort\/Authenticators\/APIKeyAuth.php", 14 ] }, { "function": "onShutdown", "class": "KATEv2\\Commons\\KateErrorHandler\\ErrorHandler", "type": "->", "args": [] } ], "code": 0 } }