{"record":{"id":"857446e75ac159e9","repo":"hashicorp/nomad","slug":"failed-to-create-result-paginator","errorCode":null,"errorMessage":"failed to create result paginator","messagePattern":"failed to create result paginator","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/structs/errors.go","lineNumber":74,"sourceCode":"\tErrTokenNotFound              = errors.New(errTokenNotFound)\n\tErrTokenExpired               = errors.New(errTokenExpired)\n\tErrTokenInvalid               = errors.New(errTokenInvalid)\n\tErrPermissionDenied           = errors.New(errPermissionDenied)\n\tErrJobRegistrationDisabled    = errors.New(errJobRegistrationDisabled)\n\tErrNoNodeConn                 = errors.New(errNoNodeConn)\n\tErrUnknownMethod              = errors.New(errUnknownMethod)\n\tErrUnknownNomadVersion        = errors.New(errUnknownNomadVersion)\n\tErrNodeLacksRpc               = errors.New(errNodeLacksRpc)\n\tErrMissingAllocID             = errors.New(errMissingAllocID)\n\tErrIncompatibleFiltering      = errors.New(errIncompatibleFiltering)\n\tErrMalformedChooseParameter   = errors.New(errMalformedChooseParameter)\n\n\t// ErrResultPaginatorCreation is returned by list RPC handlers when the\n\t// result paginator cannot be built, for example when the server cannot\n\t// evaluate a requested filter expression. api.ResultPaginatorErrorContent\n\t// duplicates its message so the CLI can match it without importing structs.\n\t// Keep the two in sync.\n\tErrResultPaginatorCreation = errors.New(errResultPaginatorCreation)\n\n\tErrUnknownNode = errors.New(ErrUnknownNodePrefix)\n\n\tErrDeploymentTerminalNoCancel    = errors.New(errDeploymentTerminalNoCancel)\n\tErrDeploymentTerminalNoFail      = errors.New(errDeploymentTerminalNoFail)\n\tErrDeploymentTerminalNoPause     = errors.New(errDeploymentTerminalNoPause)\n\tErrDeploymentTerminalNoPromote   = errors.New(errDeploymentTerminalNoPromote)\n\tErrDeploymentTerminalNoResume    = errors.New(errDeploymentTerminalNoResume)\n\tErrDeploymentTerminalNoUnblock   = errors.New(errDeploymentTerminalNoUnblock)\n\tErrDeploymentTerminalNoRun       = errors.New(errDeploymentTerminalNoRun)\n\tErrDeploymentTerminalNoSetHealth = errors.New(errDeploymentTerminalNoSetHealth)\n\tErrDeploymentRunningNoUnblock    = errors.New(errDeploymentRunningNoUnblock)\n\n\tErrCSIClientRPCIgnorable  = errors.New(\"CSI client error (ignorable)\")\n\tErrCSIClientRPCRetryable  = errors.New(\"CSI client error (retryable)\")\n\tErrCSIVolumeMaxClaims     = errors.New(\"volume max claims reached\")\n\tErrCSIVolumeUnschedulable = errors.New(\"volume is currently unschedulable\")\n\tErrCSIPluginInUse         = errors.New(\"plugin in use\")","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/structs/errors.go#L56-L92","documentation":"Returned by list RPC handlers when the server cannot construct the result paginator, most often because a requested filter expression cannot be evaluated. The message is duplicated in api.ResultPaginatorErrorContent so the CLI can match it without importing structs.","triggerScenarios":"Calling a list RPC (e.g. Job.List with pagination) where building the paginator fails, typically due to an invalid or un-evaluable filter expression accompanying the paginated request.","commonSituations":"Pagination combined with a filter expression containing syntax errors or unsupported fields; clients upgrading Nomad and using filter syntax the server version doesn't understand.","solutions":["Fix the filter expression in the request; test it with 'nomad job list -filter ...' or eval it before paginating.","Remove or simplify the filter to confirm it is the cause.","Check server/client version compatibility for filter expression features.","Inspect the wrapped error (%v in the RPC error) for the exact parse/evaluation failure."],"exampleFix":"// before\nreq.Filter = \"Status == running\" // invalid expr syntax\n// after\nreq.Filter = \"Status == \\\"running\\\"\"","handlingStrategy":"validation","validationCode":"// Validate filter expression before paginating:\n_, err := api.Parse(filterExpr)\nif err != nil {\n    return fmt.Errorf(\"invalid filter %q: %w\", filterExpr, err)\n}","typeGuard":null,"tryCatchPattern":"if strings.Contains(err.Error(), api.ResultPaginatorErrorContent) {\n    // fall back to unpaginated listing or fix the filter\n    return retryWithoutPagination(req)\n}","preventionTips":["Test filter expressions with the CLI before embedding them in automation.","Keep client and server Nomad versions aligned.","Log the wrapped inner error to find the exact filter parse failure."],"tags":["pagination","filtering","rpc","nomad"],"backgroundTag":"invalid-filter-expression","analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}