You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[CI Failure] Flaky: ParentProcessLifetimeScopesExecutableAndContainerToParentProcess fails due to DCP timestamp parsing BadRequest #18755
Build: https://github.com/microsoft/aspire/actions/runs/29217376246
Build error leg or test failing: Tests / Hosting-1 / Hosting-1 (8-core-ubuntu-latest) / Aspire.Hosting.Tests.DistributedApplicationTests.ParentProcessLifetimeScopesExecutableAndContainerToParentProcess
Pull request: #18752
Error Message
k8s.Autorest.HttpOperationException: Operation returned an invalid status code 'BadRequest', response body {"message":"Executable in version \"v1\" cannot be handled as a Executable: parsing time \"0001-01-01T00:02:47Z\" as \"2006-01-02T15:04:05.000000Z07:00\": cannot parse \"Z\" as \".000000\"","reason":"BadRequest","code":400}
at Aspire.Hosting.Dcp.KubernetesService in /_/src/Aspire.Hosting/Dcp/KubernetesService.cs:line 139
Description
Flaky: ParentProcessLifetimeScopesExecutableAndContainerToParentProcess fails due to DCP timestamp parsing BadRequest
This failure's root cause was fixed by #18798 (merged 2026-07-16).
Root cause: On Linux, the parent-process identity timestamp is boot-relative, stored as an offset from DateTime.MinValue. When the value fell on a whole second, System.Text.Json's default DateTime converter trimmed the fractional part and wrote "0001-01-01T00:06:30Z". DCP parses monitorTimestamp as Kubernetes metav1.MicroTime, which requires exactly six fractional digits, so it returned 400 BadRequest. #18798 added KubernetesMicroTimeJsonConverter, which always writes the fixed-width form (0001-01-01T00:06:30.000000Z).
The regression tests MonitorTimestamps_SerializeToDcpMicroTimeWireContract and MonitorTimestamps_DeserializeFromDcpMicroTimeWireContract (in tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs) are on main and use this exact failing input.
I found no later occurrences or new issues for the ParentProcessLifetime tests.
#18798 said "Related to #18794" rather than "Fixes", so this issue wasn't closed automatically. I suggest closing it as fixed by #18798.
Closure recommendation: no recurrence in 7 days of CI
Window: ci.yml attempt-1 runs from 2026-10-25T10:57Z to 2026-11-01T09:51Z (824 runs). I grepped every failed test-job log in that window (968 of 968 downloaded).
Test: DistributedApplicationTests.ParentProcessLifetimeScopesExecutableAndContainerToParentProcess. It's still present on main (1bccada) and requires a container runtime, so it runs on Linux.
Aspire.Hosting.Tests Linux shards: 63 main runs (441 shard jobs) and 198 PR runs (1,386 shard jobs).
Failures: 0, and the DCP timestamp-parsing BadRequest signature doesn't appear in any failed log.
Last recorded occurrence: 2026-07-13, run 29217376246.
Fixing PR: none identified.
I recommend closing this. Reopen it if the signature comes back.
Activity
radical commentedon Aug 29, 2026
[automated] The CI shepherd is watching this failure.
Current assessment: Watch this single-test-occurrence for another independent failure of the same test on a different day.
Evidence reviewed:
Evidence still needed:
Reassess when: After another independent failure of the same test on a different day or positive recovery.
No quarantine, retry, closure, or investigation has been started.
davidfowl commentedon Oct 31, 2026
This failure's root cause was fixed by #18798 (merged 2026-07-16).
Root cause: On Linux, the parent-process identity timestamp is boot-relative, stored as an offset from
DateTime.MinValue. When the value fell on a whole second, System.Text.Json's defaultDateTimeconverter trimmed the fractional part and wrote"0001-01-01T00:06:30Z". DCP parsesmonitorTimestampas Kubernetesmetav1.MicroTime, which requires exactly six fractional digits, so it returned 400 BadRequest. #18798 addedKubernetesMicroTimeJsonConverter, which always writes the fixed-width form (0001-01-01T00:06:30.000000Z).Evidence:
MonitorTimestamps_SerializeToDcpMicroTimeWireContractandMonitorTimestamps_DeserializeFromDcpMicroTimeWireContract(intests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs) are on main and use this exact failing input.#18798 said "Related to #18794" rather than "Fixes", so this issue wasn't closed automatically. I suggest closing it as fixed by #18798.
🤖 Posted by AspireAgent (AI Agent)
davidfowl commentedon Nov 1, 2026
Closure recommendation: no recurrence in 7 days of CI
DistributedApplicationTests.ParentProcessLifetimeScopesExecutableAndContainerToParentProcess. It's still present on main (1bccada) and requires a container runtime, so it runs on Linux.BadRequestsignature doesn't appear in any failed log.I recommend closing this. Reopen it if the signature comes back.
🤖 Posted by AspireAgent (AI Agent)