{"record":{"id":"0da98ce76c428fc5","repo":"iflytek/astron-agent","slug":"8008-exceed-authority-0da98c","errorCode":"8008","errorMessage":"exceed.authority","messagePattern":"exceed\\.authority","errorType":"error_code","errorClass":"BusinessException","httpStatus":null,"severity":"error","filePath":"console/backend/toolkit/src/main/java/com/iflytek/astron/console/toolkit/controller/workflow/WorkflowController.java","lineNumber":104,"sourceCode":"     * @param spaceId Space ID (optional, fallback to SpaceInfoUtil in service layer if empty)\n     * @return Paginated data\n     */\n    @GetMapping(\"/list\")\n    @SpacePreAuth(\n            key = \"WorkflowController_list_GET\",\n            module = \"Workflow\",\n            point = \"Workflow List\",\n            description = \"Workflow List\")\n    public PageData<WorkflowVo> list(\n            @NotNull(message = \"Pagination parameters cannot be null\") Pagination pagination,\n            @RequestParam(required = false) String search,\n            @RequestParam(required = false) String flowId,\n            @RequestParam(required = false) Integer status,\n            @RequestParam(required = false) Integer order,\n            @RequestParam(required = false) Long spaceId) throws UnsupportedEncodingException {\n\n        if (pagination.isEmpty()) {\n            throw new BusinessException(ResponseEnum.PAGE_SEPARATOR_MISS);\n        }\n        return workflowService.listPage(\n                spaceId, pagination.getCurrent(), pagination.getPageSize(), search, status, order, flowId);\n    }\n\n    /**\n     * Get workflow details.\n     *\n     * @param id Workflow primary key ID\n     */\n    @GetMapping\n    @SpacePreAuth(\n            key = \"WorkflowController_detail_GET\",\n            module = \"Workflow\",\n            point = \"Workflow Details\",\n            description = \"Workflow Details\")\n    public WorkflowVo detail(@RequestParam @NotBlank String id, @RequestParam(required = false) Long spaceId) {\n        return workflowService.detail(id, spaceId);","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/iflytek/astron-agent/blob/5e758547a83371a5a4b29dadf4ac03e8dd527635/console/backend/toolkit/src/main/java/com/iflytek/astron/console/toolkit/controller/workflow/WorkflowController.java#L86-L122","documentation":"ResponseEnum.PAGE_SEPARATOR_MISS (code 8008, message \"exceed.authority\") thrown by WorkflowController.list when pagination.isEmpty() is true. The message does not reflect the actual problem: the workflow list endpoint requires non-empty current/pageSize parameters. Request is rejected before workflowService.listPage runs.","triggerScenarios":"GET the workflow list endpoint with filters but without paging params, e.g. /workflow?search=etl&status=1 with no current/pageSize, or with values the Pagination bean treats as empty (null).","commonSituations":"Deep links/bookmarks to a filtered list URL lacking page params; frontend resetting pagination state and sending nulls; older API clients built before paging became mandatory.","solutions":["Send current and pageSize on every list call: ?current=1&pageSize=10.","Apply client-side defaults for pagination before requesting the workflow list.","Fix the enum: PAGE_SEPARATOR_MISS should map to a 'missing pagination parameters' message/code, not 'exceed.authority' (8008).","For shared/bookmarked URLs, read paging params with defaults: page = params.current ?? 1."],"exampleFix":"// before\nawait api.get('/workflow', { params: { search, status } });\n// after\nawait api.get('/workflow', { params: { search, status, current: 1, pageSize: 10 } });","handlingStrategy":"validation","validationCode":"function workflowListParams(params) {\n  return { current: params.current ?? 1, pageSize: params.pageSize ?? 10, ...params };\n}","typeGuard":"const pagingOk = (p) => p?.current != null && p?.pageSize != null;","tryCatchPattern":"try {\n  const list = await api.listWorkflows(params);\n} catch (e) {\n  if (e.code === 8008) {\n    // not an auth problem: pagination was empty\n    return api.listWorkflows({ ...params, current: 1, pageSize: 10 });\n  } else throw e;\n}","preventionTips":["Normalize deep-link/bookmark URLs to include current and pageSize.","Wrap all workflow list calls in a client that injects default paging.","Remember ResponseEnum 8008 (PAGE_SEPARATOR_MISS) means missing pagination despite the 'exceed.authority' text."],"tags":["pagination","validation","workflow"],"backgroundTag":"missing-required-argument","analyzedSha":"5e758547a83371a5a4b29dadf4ac03e8dd527635","analyzedAt":"2026-09-12T08:03:51.356Z","contentChangedAt":"2026-09-12T08:03:51.356Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}