{"record":{"id":"b78d3db28d805042","repo":"t8y2/dbx","slug":"package-not-found-s-s","errorCode":null,"errorMessage":"package not found: %s.%s","messagePattern":"package not found: (.+?)\\.(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/xugu/package_members.go","lineNumber":121,"sourceCode":"\t\tif !rows.Next() {\n\t\t\treturn \"\", false, rows.Err()\n\t\t}\n\t\tvar spec sql.NullString\n\t\tif err := rows.Scan(&spec); err != nil {\n\t\t\treturn \"\", false, err\n\t\t}\n\t\treturn spec.String, true, nil\n\t}\n\n\tif spec, found, err := query(xuguPackageSpecSQL, schema, packageName); err != nil || found {\n\t\treturn spec, err\n\t}\n\tif spec, found, err := query(xuguPackageSpecCaseFoldedSQL, schema, packageName, schema, packageName); err != nil {\n\t\treturn \"\", err\n\t} else if found {\n\t\treturn spec, nil\n\t}\n\treturn \"\", fmt.Errorf(\"package not found: %s.%s\", schema, packageName)\n}\n\nfunc xuguCompletionRequestsRoutines(kinds []string) bool {\n\tif len(kinds) == 0 {\n\t\treturn false\n\t}\n\tfor _, kind := range kinds {\n\t\tswitch strings.ToLower(strings.TrimSpace(kind)) {\n\t\tcase \"routine\", \"procedure\", \"function\":\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc xuguCompletionRoutineKinds(kinds []string) map[string]bool {\n\tallowed := map[string]bool{}\n\tfor _, kind := range kinds {","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/xugu/package_members.go#L103-L139","documentation":"xuguPackageSpec looks up a stored package's specification in the system metadata views (case-folded lookup by schema and package name). When no row matches, completion-assisted package member search aborts with this error because there is no package to enumerate members for.","triggerScenarios":"Invoking completionAssistantSearchPackageMembers with a schema.packageName that the case-folded lookup query cannot find — package does not exist, is in another schema, or the user cannot see its metadata rows.","commonSituations":"Autocompletion in a SQL editor against a misspelled package name, connecting with restricted credentials that filter out the package from ALL_PACKAGES-style views, or the package was dropped while the editor session was open.","solutions":["Check the package exists in the schema with exact (or any-case, lookup is case-folded) name.","Fully qualify as schema.package and confirm the schema is the one the package was created in.","Grant the connecting user read access to the package metadata views.","Refresh/reconnect in case the package was recently dropped or created after the session's metadata cache."],"exampleFix":"// before\nxuguPackageSpec(\"app\", \"pkg_orders\") // package is actually PKG_ORDER\n// after\nxuguPackageSpec(\"app\", \"pkg_order\")","handlingStrategy":"validation","validationCode":"func packageExists(ctx context.Context, q Queryer, schema, pkg string) (bool, error) {\n\tvar n int\n\terr := q.QueryRowContext(ctx,\n\t\t\"SELECT COUNT(*) FROM all_packages WHERE owner = ? AND package_name = ?\",\n\t\tschema, pkg).Scan(&n)\n\treturn n > 0, err\n}","typeGuard":null,"tryCatchPattern":"spec, err := xuguPackageSpec(schema, pkg)\nif err != nil {\n\tif strings.HasPrefix(err.Error(), \"package not found: \") {\n\t\treturn nil, fmt.Errorf(\"no package %s.%s visible to this connection\", schema, pkg)\n\t}\n\treturn nil, err\n}","preventionTips":["Verify package existence with a catalog query before requesting member completion.","Keep the connecting user's metadata grants current.","Refresh metadata after DDL changes (drop/create package) in long-lived sessions."],"tags":["database","metadata","package-not-found"],"backgroundTag":"object-not-found","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"}