fish2018/pansou · error

HTTP status code

Error message

HTTP status code: %d

What it means

Status error in panyq's getRawFinalLinkResponse (plugin/panyq/panyq.go:917): the next-action endpoint responded with a non-200 status after retries, so the final-link payload cannot be fetched. Used by validateFinalLinkID and getFinalLink.

Solutions

  1. 对 429/503 增加退避重试
  2. 检查请求头与 Cookie 是否有效
  3. 记录状态码定位拦截原因
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at plugin/panyq/panyq.go:917 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07). Data as JSON: /api/errors/cca12bed85ff745d. Report an issue: GitHub.

Appendix: source

Thrown at plugin/panyq/panyq.go:917

	}
	
	// 发送请求并支持重试
	resp, err := p.doRequestWithRetry(client, req, MaxRetries)
	if err != nil {
		// 网络错误等情况下返回空字符串和错误
		if DebugLog {
			fmt.Println("panyq: network error:", err)
		}
		return "", err
	}
	defer resp.Body.Close()
	
	// 检查状态码
	if resp.StatusCode != http.StatusOK {
		if DebugLog {
			fmt.Println("panyq: bad status code:", resp.StatusCode)
		}
		return "", fmt.Errorf("HTTP status code: %d", resp.StatusCode)
	}
	
	// 读取原始响应
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		// 读取错误时返回空字符串和错误
		if DebugLog {
			fmt.Println("panyq: read error:", err)
		}
		return "", err
	}
	
	responseText := string(body)

	// 保存到缓存
	finalLinkCacheLock.Lock()
	finalLinkCache[cacheKey] = responseText
	finalLinkCacheLock.Unlock()

View on GitHub (pinned to beaa561337)