{"record":{"id":"3beee502a07b197c","repo":"Leantime/leantime","slug":"unmatched-listeners-found","errorCode":null,"errorMessage":"Unmatched listeners found:","messagePattern":"Unmatched listeners found:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/Command/CheckEventListeners.php","lineNumber":156,"sourceCode":"            unlink($this->cacheFile);\n            $this->info('Cache cleared.');\n        }\n    }\n\n    private function validateListeners(): void\n    {\n        $normalizedEvents = array_map('strtolower', $this->events);\n        $unmatchedListeners = [];\n\n        foreach ($this->listeners as $listener) {\n            $listener = strtolower($listener);\n            if (! $this->matchesAnyEvent($listener, $normalizedEvents)) {\n                $unmatchedListeners[] = $listener;\n            }\n        }\n\n        if (! empty($unmatchedListeners)) {\n            $this->warn('Unmatched listeners found:');\n            foreach ($unmatchedListeners as $listener) {\n                $this->line(\"- $listener\");\n            }\n        } else {\n            $this->info('All listeners have corresponding events.');\n        }\n    }\n\n    private function matchesAnyEvent(string $listener, array $events): bool\n    {\n\n        preg_match_all('/\\{RGX:(.*?):RGX\\}/', $listener, $regexMatches);\n\n        $key = strtr($listener, [\n            ...collect($regexMatches[0])->mapWithKeys(fn ($match, $i) => [$match => \"REGEX_MATCH_$i\"])->toArray(),\n            '*' => 'RANDOM_STRING',\n            '?' => 'RANDOM_CHARACTER',\n        ]);","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/Leantime/leantime/blob/9a9f49f1008f4782b30f6723c54228f4f992e636/app/Command/CheckEventListeners.php#L138-L174","documentation":"Error \"Unmatched listeners found:\" thrown in Leantime/leantime.","triggerScenarios":"Thrown at app/Command/CheckEventListeners.php:156 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":"9a9f49f1008f4782b30f6723c54228f4f992e636","analyzedAt":"2026-08-21T02:37:38.966Z","schemaVersion":2},"datasetVersion":"2026-08-21T03:17:12.404Z"}