{"record":{"id":"e322111d5f0e7972","repo":"multica-ai/multica","slug":"store-skill-bundle-cache-w","errorCode":null,"errorMessage":"store skill bundle cache: %w","messagePattern":"store skill bundle cache: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/internal/daemon/daemon.go","lineNumber":5949,"sourceCode":"\t// claim and prepare (see ResolveTaskSkillBundles). So confirm only that the\n\t// server returned the skill we asked for (source/id), then validate the\n\t// bundle for self-consistency against a ref derived from itself — pinning\n\t// it to the possibly-stale requested hash would reject a legitimate update.\n\tif bundle.Source != ref.Source || bundle.ID != ref.ID {\n\t\treturn SkillData{}, fmt.Errorf(\"resolve skill bundle returned wrong skill: requested source=%s id=%s, got source=%s id=%s\", ref.Source, ref.ID, bundle.Source, bundle.ID)\n\t}\n\tbundleRef := skillRefFromBundle(bundle)\n\tvalidationRef := bundleRef\n\tif ref.Source == skillbundle.SourcePlugin {\n\t\tvalidationRef = ref\n\t}\n\tif !validateSkillBundle(validationRef, bundle) {\n\t\treturn SkillData{}, fmt.Errorf(\"resolve skill bundle returned invalid bundle: skill_id=%s source=%s hash=%s\", bundle.ID, bundle.Source, bundle.Hash)\n\t}\n\tif err := d.skillCache.WithRefLock(task.WorkspaceID, validationRef, func() error {\n\t\treturn d.skillCache.Store(task.WorkspaceID, bundle)\n\t}); err != nil {\n\t\treturn SkillData{}, fmt.Errorf(\"store skill bundle cache: %w\", err)\n\t}\n\treturn bundle, nil\n}\n\nconst (\n\t// skillBundleResolveMinTimeout floors the per-skill resolve deadline so a\n\t// tiny bundle still tolerates connection setup and round-trip latency.\n\tskillBundleResolveMinTimeout = 30 * time.Second\n\t// skillBundleResolveMaxTimeout caps it so a wedged download cannot pin a\n\t// task in prepare indefinitely.\n\tskillBundleResolveMaxTimeout = 5 * time.Minute\n\t// skillBundleResolveMinThroughput is the pessimistic floor throughput\n\t// (bytes/sec) used to scale the deadline to bundle size — deliberately low\n\t// to cover slow, jittery links rather than ideal bandwidth.\n\tskillBundleResolveMinThroughput = 50 * 1024\n)\n\n// skillBundleResolveTimeout returns the deadline budget for downloading a","sourceCodeStart":5931,"sourceCodeEnd":5967,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/daemon/daemon.go#L5931-L5967","documentation":"Error \"store skill bundle cache: %w\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/internal/daemon/daemon.go:5949 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check disk space and permissions for the cache directory, then retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}