{"record":{"id":"5741d7fc82b74b1f","repo":"semaphoreui/semaphore","slug":"error-at-integrations-d-s","errorCode":null,"errorMessage":"error at integrations[%d]: %s","messagePattern":"error at integrations\\[(.+?)\\]: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"services/project/restore.go","lineNumber":687,"sourceCode":"\t\tif string(o.Type) == \"deploy\" {\n\t\t\tdeployTemplates = append(deployTemplates, i)\n\t\t\tcontinue\n\t\t}\n\t\tif err := o.Restore(&b); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error at templates[%d]: %s\", i, err.Error())\n\t\t}\n\t}\n\n\tfor _, i := range deployTemplates {\n\t\to := backup.Templates[i]\n\t\tif err := o.Restore(&b); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error at templates[%d]: %s\", i, err.Error())\n\t\t}\n\t}\n\n\tfor i, o := range backup.Integration {\n\t\tif err := o.Restore(&b); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error at integrations[%d]: %s\", i, err.Error())\n\t\t}\n\t}\n\n\tfor _, o := range backup.IntegrationAliases {\n\t\talias := db.IntegrationAlias{\n\t\t\tAlias:     o,\n\t\t\tProjectID: b.meta.ID,\n\t\t}\n\t\t_, _ = b.store.CreateIntegrationAlias(alias)\n\t}\n\n\tfor i, o := range backup.Schedules {\n\t\tif err := o.Restore(&b); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error at schedules[%d]: %s\", i, err.Error())\n\t\t}\n\t}\n\n\tfor i, o := range backup.Runners {","sourceCodeStart":669,"sourceCodeEnd":705,"githubUrl":"https://github.com/semaphoreui/semaphore/blob/1774ccb71a0a8b82eb74ea24c23ac9ab713de2fa/services/project/restore.go#L669-L705","documentation":"Produced during project restore in services/project/restore.go when the i-th entry of the backup's Integration list fails to restore itself via its Restore method. It is an aggregation wrapper: the %s embeds the underlying per-integration error (bad stored integration data, missing secret, or a store failure), while the %d index identifies exactly which integrations[] entry in the backup archive is at fault, letting callers distinguish one bad record from a wholesale restore failure.","triggerScenarios":"Thrown at services/project/restore.go:687 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the embedded per-entry message to identify which integration type failed and why","Fix or remove the offending integration entry from the backup archive (the index in the message points at the exact element) and retry the restore","If the integration references a missing secret or key, restore the secret storage first or re-create the referenced credential before re-running","Report the index to the user so they can inspect that specific integration in the exported project"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1774ccb71a0a8b82eb74ea24c23ac9ab713de2fa","analyzedAt":"2026-09-07T11:00:33.293Z","contentChangedAt":"2026-09-07T11:00:33.293Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}