Tencent/WeKnora · error
http poll task status %d: %s
Error message
http poll task status %d: %s
What it means
Fired in pollTaskResult when the task status endpoint returns a non-200 status. Body content is embedded in the message; commonly 404 (task expired or unknown task_id), 401/403 (signature/auth problem), or 5xx (service error).
Source
Thrown at internal/infrastructure/docparser/weknoracloud_http_reader.go:164
statusURL := weKnoraCloudReaderBaseURL + "/" + taskID
currentInterval := p.initialPollInterval
for {
httpReq, err := p.newSignedRequest(pollCtx, http.MethodGet, statusURL, nil)
if err != nil {
logger.Errorf(context.Background(), "[WeKnoraCloud] poll signed request task_id=%s: %v", taskID, err)
return nil, err
}
resp, err := p.client.Do(httpReq)
if err != nil {
logger.Errorf(context.Background(), "[WeKnoraCloud] http poll task_id=%s failed: %v", taskID, err)
return nil, fmt.Errorf("http poll task failed: %w", err)
}
var taskResp weKnoraCloudAsyncTaskResponse
func() {
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
bodyBytes, _ := io.ReadAll(resp.Body)
err = fmt.Errorf("http poll task status %d: %s", resp.StatusCode, string(bodyBytes))
logger.Errorf(context.Background(), "[WeKnoraCloud] poll task_id=%s status %d: %s", taskID, resp.StatusCode, string(bodyBytes))
return
}
if decodeErr := json.NewDecoder(resp.Body).Decode(&taskResp); decodeErr != nil {
err = fmt.Errorf("http decode task response: %w", decodeErr)
logger.Errorf(context.Background(), "[WeKnoraCloud] poll task_id=%s decode response: %v", taskID, decodeErr)
}
}()
if err != nil {
return nil, err
}
switch taskResp.Status {
case "completed":
if taskResp.Result == nil {
logger.Infof(ctx, "[WeKnoraCloud] task_id=%s completed with no result payload", taskID)
return &types.ReadResult{}, nil
}
res := fromHTTPReadResponse(taskResp.Result)View on GitHub (pinned to 988cbb0330)
Solutions
- Check the embedded body for the server's error detail
- On 404 the task likely expired or the task_id is wrong; resubmit the read
- On 401/403 verify signing credentials
- On 5xx retry the poll after a delay
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at internal/infrastructure/docparser/weknoracloud_http_reader.go:164 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/d2d17220dbfcd046.
Report an issue: GitHub.