{"record":{"id":"9b3e7189949d2c3a","repo":"t8y2/dbx","slug":"scheduler-job-name-is-required","errorCode":null,"errorMessage":"scheduler job name is required","messagePattern":"scheduler job name is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/xugu/main.go","lineNumber":3254,"sourceCode":"\tif !rows.Next() {\n\t\treturn result, rows.Err()\n\t}\n\tvar job xuguSchedulerJobMetadata\n\tif err := rows.Scan(\n\t\t&job.Name, &job.JobType, &job.ParameterCount, &job.Action, &job.BeginTime,\n\t\t&job.RepeatInterval, &job.EndTime, &job.Enabled, &job.AutoDrop, &job.Comments,\n\t); err != nil {\n\t\treturn nil, err\n\t}\n\tresult[\"name\"] = job.Name\n\tresult[\"source\"] = renderXuguSchedulerJobDDL(job)\n\treturn result, rows.Err()\n}\n\nfunc (s *server) resolveCatalogSchedulerJobName(name string) (string, error) {\n\tname = strings.TrimSpace(name)\n\tif name == \"\" {\n\t\treturn \"\", errors.New(\"scheduler job name is required\")\n\t}\n\tcandidates, err := s.catalogSchedulerJobNameCandidates(xuguCatalogSchedulerJobNameQuery(name, false))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif len(candidates) == 0 {\n\t\tcandidates, err = s.catalogSchedulerJobNameCandidates(xuguCatalogSchedulerJobNameQuery(name, true))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\tfor _, candidate := range candidates {\n\t\tif candidate == name {\n\t\t\treturn candidate, nil\n\t\t}\n\t}\n\tif len(candidates) == 1 {\n\t\treturn candidates[0], nil","sourceCodeStart":3236,"sourceCodeEnd":3272,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/xugu/main.go#L3236-L3272","documentation":"This error is returned by resolveCatalogSchedulerJobName when the scheduler job name argument is empty or only whitespace. The driver refuses to issue a catalog lookup for scheduler jobs without a name, since the resulting query would be meaningless.","triggerScenarios":"Calling the scheduler-job catalog resolution path with an empty or whitespace-only job name string.","commonSituations":"An agent passes an empty ParentName/objectName field when requesting scheduler job metadata, or code that strips identifiers ends up with an empty string after trimming.","solutions":["Provide a non-empty scheduler job name before calling the API","Trim and validate user input before resolving the job name","Check that the identifier field is populated in the request payload"],"exampleFix":"// before\nname, _ := resolveCatalogSchedulerJobName(\"\")\n// after\nif strings.TrimSpace(jobName) == \"\" { return nil }\njob, err := resolveCatalogSchedulerJobName(jobName)","handlingStrategy":"validation","validationCode":"if strings.TrimSpace(jobName) == \"\" {\n    return fmt.Errorf(\"scheduler job name is required\")\n}","typeGuard":"func hasSchedulerJobName(name string) bool {\n    return strings.TrimSpace(name) != \"\"\n}","tryCatchPattern":"job, err := s.resolveCatalogSchedulerJobName(name)\nif err != nil {\n    if err.Error() == \"scheduler job name is required\" {\n        return nil, fmt.Errorf(\"invalid request: %w\", err)\n    }\n    return nil, err\n}","preventionTips":["Trim and validate all identifier inputs before catalog lookups","Make job name a required field in request schemas/UI forms"],"tags":["validation","xugu","catalog"],"backgroundTag":"missing-required-argument","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}