From 1a4e64ba06d071551ae8266ea809de0e412b45c8 Mon Sep 17 00:00:00 2001 From: shellybotmoyer <258858106+shellybotmoyer@users.noreply.github.com> Date: Sat, 16 May 2026 22:51:17 -0700 Subject: [PATCH] fix(credential_pool): parse ISO-string last_status_at during from_dict rehydration (#25516) --- agent/credential_pool.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/agent/credential_pool.py b/agent/credential_pool.py index 504742145c..7f27873a7f 100644 --- a/agent/credential_pool.py +++ b/agent/credential_pool.py @@ -129,6 +129,9 @@ class PooledCredential: def from_dict(cls, provider: str, payload: Dict[str, Any]) -> "PooledCredential": field_names = {f.name for f in fields(cls) if f.name != "provider"} data = {k: payload.get(k) for k in field_names if k in payload} + # Rehydrated last_status_at may be an ISO string from to_dict() — normalize to float epoch + if "last_status_at" in data and isinstance(data["last_status_at"], str): + data["last_status_at"] = _parse_absolute_timestamp(data["last_status_at"]) extra = {k: payload[k] for k in _EXTRA_KEYS if k in payload and payload[k] is not None} data["extra"] = extra data.setdefault("id", uuid.uuid4().hex[:6])