{"record":{"id":"645242234a9ffee5","repo":"siyuan-note/siyuan","slug":"the-obsidian-vault-analysis-is-not-ready-or-has-ex","errorCode":null,"errorMessage":"The Obsidian Vault analysis is not ready or has expired","messagePattern":"The Obsidian Vault analysis is not ready or has expired","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kernel/model/import_obsidian.go","lineNumber":312,"sourceCode":"\t\tobsidianTasksMu.Unlock()\n\t\treturn ret, errors.New(Conf.Language(331))\n\t}\n\tif task.Cancel != nil {\n\t\ttask.Cancel()\n\t}\n\tfinishObsidianTaskLocked(task, ObsidianTaskStateCancelled, \"Import cancelled\", \"\")\n\tret := snapshotObsidianTask(task)\n\tobsidianTasksMu.Unlock()\n\tremoveObsidianTemp(taskID)\n\treturn ret, nil\n}\n\nfunc StartObsidianVaultImport(taskID, notebookName string) (*ObsidianVaultTask, error) {\n\tobsidianTasksMu.Lock()\n\ttask := obsidianTasks[taskID]\n\tif task == nil || task.State != ObsidianTaskStateReady || task.Context == nil {\n\t\tobsidianTasksMu.Unlock()\n\t\treturn nil, errors.New(Conf.Language(332))\n\t}\n\tif time.Now().After(task.ExpiresAt) {\n\t\tfinishObsidianTaskLocked(task, ObsidianTaskStateCancelled, \"Analysis expired\", \"\")\n\t\tobsidianTasksMu.Unlock()\n\t\treturn nil, errors.New(Conf.Language(332))\n\t}\n\n\tname := strings.TrimSpace(util.RemoveInvalid(notebookName))\n\tif name == \"\" {\n\t\tname = task.Analysis.NotebookName\n\t}\n\tctx, cancel := context.WithCancel(context.Background())\n\ttask.Cancel = cancel\n\ttask.State = ObsidianTaskStateRevalidating\n\ttask.Progress = 1\n\ttask.Message = \"Revalidating source files\"\n\tret := snapshotObsidianTask(task)\n\tobsidianTasksMu.Unlock()","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/afa823b6b4e4f183511e0bc0a3be93caa94c7c97/kernel/model/import_obsidian.go#L294-L330","documentation":"Error \"The Obsidian Vault analysis is not ready or has expired\" thrown in siyuan-note/siyuan.","triggerScenarios":"Thrown at kernel/model/import_obsidian.go:312 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run the Vault analysis again and start the import before the analysis result expires","Poll the task status until it reaches the ready state before starting the import"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"afa823b6b4e4f183511e0bc0a3be93caa94c7c97","analyzedAt":"2026-08-18T17:04:10.865Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}