diff --git a/backend-compliance/compliance/api/agent_compliance_check_routes.py b/backend-compliance/compliance/api/agent_compliance_check_routes.py index 6a3fc653..1fae9297 100644 --- a/backend-compliance/compliance/api/agent_compliance_check_routes.py +++ b/backend-compliance/compliance/api/agent_compliance_check_routes.py @@ -1256,6 +1256,20 @@ async def _fetch_text(url: str, doc_type: str = "") -> tuple[str, list[dict]]: logger.info("Merged %d docs from %s (%d words)", len(texts), url, len(merged.split())) return merged, cmp_payloads + # P90-Bug-Fix: auch wenn DSE-Text zu kurz fuer 100-Wort- + # Schwelle ist, die captured CMP-Payloads NICHT verwerfen. + # BMW-Bug: DSE liefert 10 Wort SPA-Shell, aber ePaaS-JSON + # (393KB) wurde captured. Backend braucht die fuer + # extract_vendors_from_payloads (VVT-Tabelle). + if cmp_payloads: + logger.info( + "P90: keeping %d CMP payloads for %s despite " + "short text (%d words) — HTTP fallback runs in parallel", + len(cmp_payloads), url, + len((merged or cmp_cookie_text).split()), + ) + fallback_text = merged or cmp_cookie_text or "" + return fallback_text, cmp_payloads except Exception as e: logger.warning("Consent-tester fetch failed for %s: %s", url, e)