{"record":{"id":"21491731fa34dcad","repo":"HKUDS/DeepTutor","slug":"event-type-must-not-be-empty","errorCode":null,"errorMessage":"event_type must not be empty","messagePattern":"event_type must not be empty","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"deeptutor/learning/storage.py","lineNumber":130,"sourceCode":"        self.changed = created\n        self._events: list[tuple[str, dict[str, Any], str, str]] = []\n        if created:\n            self.emit(\"path.created\", {})\n\n    def touch(self) -> None:\n        self.changed = True\n\n    def emit(\n        self,\n        event_type: str,\n        payload: dict[str, Any] | None = None,\n        *,\n        session_id: str = \"\",\n        turn_id: str = \"\",\n    ) -> None:\n        event_name = str(event_type or \"\").strip()\n        if not event_name:\n            raise ValueError(\"event_type must not be empty\")\n        self.changed = True\n        self._events.append(\n            (event_name, dict(payload or {}), str(session_id or \"\"), str(turn_id or \"\"))\n        )\n\n    @property\n    def events(self) -> list[tuple[str, dict[str, Any], str, str]]:\n        return list(self._events)\n\n    @staticmethod\n    def _interaction_from_row(row: sqlite3.Row | None) -> MasteryInteraction | None:\n        if row is None:\n            return None\n        return MasteryInteraction(\n            interaction_id=row[\"interaction_id\"],\n            path_id=row[\"path_id\"],\n            question=json.loads(row[\"question_json\"]),\n            status=InteractionStatus(row[\"status\"]),","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/learning/storage.py#L112-L148","documentation":"Error \"event_type must not be empty\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/learning/storage.py:130 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":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}