@prodcycle/prodcycle 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/api-client.js +14 -1
  2. package/package.json +1 -1
@@ -399,7 +399,20 @@ class ComplianceApiClient {
399
399
  const retryAfterSeconds = parseRetryAfter(response.headers.get('retry-after'));
400
400
  const errorBody = parsed ?? null;
401
401
  const errorMessage = errorBody?.error?.message ?? `API request failed with status ${response.status}`;
402
- const isRetryable = response.status === 429 || response.status === 503;
402
+ // 429 (rate limit) and 503 (service unavailable) honor Retry-After.
403
+ // 502 (bad gateway) and 504 (gateway timeout) are transient ALB-layer
404
+ // failures — the backend wasn't reached / didn't respond in time, so
405
+ // the request was not processed and a fresh attempt has a clean
406
+ // chance of succeeding. Concrete case: openbao-openbao got an
407
+ // instantaneous 502 during the 2026-05-13 GA-validation sweep and
408
+ // the CLI bailed without retry, even though the very next repo
409
+ // scanned cleanly. 500 is deliberately NOT retried — that's an
410
+ // application-level error and retrying could double-process or
411
+ // just deterministically refail.
412
+ const isRetryable = response.status === 429 ||
413
+ response.status === 502 ||
414
+ response.status === 503 ||
415
+ response.status === 504;
403
416
  if (isRetryable && attempt < MAX_RETRY_ATTEMPTS - 1) {
404
417
  const delayMs = retryAfterSeconds != null ? retryAfterSeconds * 1000 : retryBackoffMs(attempt);
405
418
  const cappedDelayMs = Math.min(delayMs, MAX_RETRY_AFTER_SECONDS * 1000);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prodcycle/prodcycle",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "description": "Multi-framework policy-as-code compliance scanner for infrastructure and application code.",
5
5
  "homepage": "https://docs.prodcycle.com",
6
6
  "repository": {