Skip to content

Cherry-pick #46659: Fix VPP API retry recursion causing server OOM - #46684

Merged
georgekarrv merged 1 commit into
rc-patch-fleet-v4.86.1from
georgekarrv/fix-vpp-retry-recursion-cp
Jun 2, 2026
Merged

Cherry-pick #46659: Fix VPP API retry recursion causing server OOM#46684
georgekarrv merged 1 commit into
rc-patch-fleet-v4.86.1from
georgekarrv/fix-vpp-retry-recursion-cp

Conversation

@georgekarrv

Copy link
Copy Markdown
Member

Cherry-pick of #46659 into the RC branch.

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #46656

`server/mdm/apple/vpp.do` retried transient Apple errors by **calling
itself recursively**, with the rate-limit branch nesting `retry.Do`
inside `retry.Do`.

This change replaces the recursion with a single retry loop (respecting
the prior 1 initial attempt + 3 retries), closes each response before
retrying, honors Apple's `Retry-After` capped at 30s so that a
multi-minute value can't block a synchronous request, and threads
`context` through the VPP calls so the backoff is cancellable. The retry
timings are otherwise unchanged from before.

Following @sgress454 suggestion, I considered routing this through the
shared `retry.Do` helper (a single attempt wrapped in `retry.Do` + an
error filter) but figured out that:
- retry.Do` owns its own wait schedule and its error filter returns an
outcome enum rather than a duration, so it can't honor Apple's
per-response `Retry-After` value.
- also, I'd have to change the `retry` package to receive an extra `ctx`
param so that the backoff is context-aware (which IMHO is more blast
radius than this incident fix should carry).

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`.
- [x] Timeouts are implemented and retries are limited to avoid infinite
loops

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

**What was verified.** The new automated test cannot run against `main`
(the fix changes the VPP function signatures and adds the retry knobs),
so to confirm the actual failure mode I checked out `main` and ran a
small repro that drives the VPP client against an Apple endpoint that
always returns the rate-limit error. On `main`, the call **never
returns** — `do()` recurses without bound — and the repro times out:

```
--- FAIL: TestReproUnboundedRecursionOnMain (10.00s)
    zz_repro_main_test.go:30: AssociateAssets did NOT return within 10s — unbounded retry recursion in do() on main
FAIL
FAIL	github.com/fleetdm/fleet/v4/server/mdm/apple/vpp	10.642s
```

On this branch the same scenario returns a bounded error promptly. That
behavior is covered by the new `TestDoRetryIsBoundedAndNonRecursive`
(bounded rate-limit retries, `Retry-After` honored-but-capped, and
context cancellation), and the full `server/mdm/apple/vpp` package
passes.
**I did not perform an end-to-end QA against a live Apple endpoint**.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Fixed a server out-of-memory crash that occurred when Apple VPP API
repeatedly returned transient errors during VPP operations, including
app installs, user registration, and license seat releases.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@georgekarrv
georgekarrv requested a review from a team as a code owner June 2, 2026 21:13

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: test-go (integration-mdm, mysql:8.0.44) / test

Failed stage: Run Go Tests [❌]

Failed test name: TestIntegrationsMDM/TestCustomSCEPIntegration

Failure summary:

The GitHub Action failed because the Go integration test suite TestIntegrationsMDM had multiple
failing subtests (6 failures total), which caused make test-go to exit non-zero (make[1]: ***
[Makefile:280: .run-go-tests] Error 1 and ##[error]Process completed with exit code 2).

The primary/root failure across the failing SCEP-related tests is a certificate validity issue when
verifying a PKCS#7 signature:
- In server/service/integration_mdm_test.go at line 18140 (for
TestIntegrationsMDM/TestCustomSCEPIntegration) and line 16561 / 16855 (for the SCEP proxy tests),
the tests error with:
pkcs7: signing time "2026-06-02T21:19:26Z" is outside of certificate
validity "2016-05-29T13:47:05Z" to "2026-05-29T13:47:08Z"
- This indicates the signing time in the
PKCS#7 message is after the certificate’s NotAfter (the cert appears expired as of 2026-05-29), so
signature validation fails.

There are additional errors in the logs (likely cascading/secondary) during SCEP proxy flows,
including:
- MySQL foreign key constraint failures while enqueuing remove-profile commands:
Error
1452 (23000): Cannot add or update a child row: a foreign key constraint fails
("integrationMDMTestSuite"."nano_enrollment_queue" ... REFERENCES "nano_enrollments" ("id"))
- SCEP
proxy requests failing with SCEP proxy is not configured, invalid identifier in URL path, unknown
identifier in URL path, http request failed with status 410 Gone, and context deadline exceeded.

However, the repeated PKCS#7 signing-time/certificate-validity error is the direct assertion failure
that marks the tests as failed.

Failed tests called out by the summary:
- TestIntegrationsMDM/TestCustomSCEPIntegration
-
TestIntegrationsMDM/TestSCEPProxy
- TestIntegrationsMDM/TestSCEPProxyWithMicrosoftSuffix
-
TestIntegrationsMDM/TestSmallstepSCEPProxy
-
TestIntegrationsMDM/TestSmallstepSCEPProxyWithMicrosoftSuffix

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

938:  �[36;1mattempt=1�[0m
939:  �[36;1m�[0m
940:  �[36;1mwhile [ $attempt -le $max_attempts ]; do�[0m
941:  �[36;1m  echo "Attempt $attempt of $max_attempts"�[0m
942:  �[36;1m�[0m
943:  �[36;1m  # Try to connect to MySQL�[0m
944:  �[36;1m  if wait_for_mysql "mysql_test"; then�[0m
945:  �[36;1m    # If MySQL is ready, try to connect to MySQL replica�[0m
946:  �[36;1m    if wait_for_mysql "mysql_replica_test"; then�[0m
947:  �[36;1m      # Both are ready, we're done�[0m
948:  �[36;1m      echo "All MySQL connections successful"�[0m
949:  �[36;1m      exit 0�[0m
950:  �[36;1m    fi�[0m
951:  �[36;1m  fi�[0m
952:  �[36;1m�[0m
953:  �[36;1m  # If we get here, at least one connection failed�[0m
954:  �[36;1m  echo "Failed to connect to MySQL on attempt $attempt"�[0m
955:  �[36;1m�[0m
956:  �[36;1m  if [ $attempt -lt $max_attempts ]; then�[0m
957:  �[36;1m    echo "Restarting containers and trying again..."�[0m
958:  �[36;1m    restart_containers�[0m
959:  �[36;1m  else�[0m
960:  �[36;1m    echo "Maximum attempts reached. Failing the job."�[0m
961:  �[36;1m    exit 1�[0m
...

1193:  �[32m✓�[0m Integrations MDM test MDM mac OS setup update team config 4#01 (0.04s)
1194:  �[32m✓�[0m Integrations MDM test MDM mac OS setup update team config 5 (0.06s)
1195:  �[32m✓�[0m Integrations MDM test MDM mac OS setup update team config 6 (0.04s)
1196:  �[32m✓�[0m Integrations MDM test MDM mac OS setup validate enable end user authentication (0.34s)
1197:  �[32m✓�[0m Integrations MDM test MDM migration (3.16s)
1198:  �[32m✓�[0m Integrations MDM test MDM profiles include any labels (1.74s)
1199:  �[32m✓�[0m Integrations MDM test MDM request without certs (0.38s)
1200:  �[32m✓�[0m Integrations MDM test MDM windows command results (0.46s)
1201:  �[32m✓�[0m Integrations MDM test ONC profile detail preserved when adding another profile (0.52s)
1202:  �[32m✓�[0m Integrations MDM test ONC profile detail preserved when adding another profile batch profile set (0.05s)
1203:  �[32m✓�[0m Integrations MDM test ONC profile detail preserved when adding another profile single-profile upload (0.05s)
1204:  �[32m✓�[0m Integrations MDM test ONC profile released after cert template deleted (0.76s)
1205:  �[32m✓�[0m Integrations MDM test ONC profile withheld until cert ready (1.13s)
1206:  �[32m✓�[0m Integrations MDM test OTA enroll SSO without apple DEP profile (0.67s)
1207:  �[32m✓�[0m Integrations MDM test OTA enrollment (2.80s)
1208:  �[32m✓�[0m Integrations MDM test OTA enrollment errors (0.29s)
1209:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if body is unsigned (0.00s)
1210:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if idp uuid does not match an account (0.23s)
1211:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if idp uuid is required but not set (0.03s)
1212:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if invalid apple signature (0.01s)
1213:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if invalid device signature (0.01s)
1214:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if no body is provided (0.00s)
1215:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if no enroll secret is provided (0.00s)
1216:  �[32m✓�[0m Integrations MDM test OTA enrollment errors if serial is missing (0.00s)
1217:  �[32m✓�[0m Integrations MDM test OTA enrollment succeeds (2.08s)
...

1289:  �[32m✓�[0m Integrations MDM test apple DDM fleet variables (3.46s)
1290:  �[32m✓�[0m Integrations MDM test apple DDM reconciliation (2.58s)
1291:  �[32m✓�[0m Integrations MDM test apple DDM secret variables (1.29s)
1292:  �[32m✓�[0m Integrations MDM test apple DDM secret variables upload (0.32s)
1293:  �[32m✓�[0m Integrations MDM test apple DDM status report (0.94s)
1294:  �[32m✓�[0m Integrations MDM test apple MDM account driven user enrollment (1.31s)
1295:  �[32m✓�[0m Integrations MDM test apple MDM actions on personal host (0.89s)
1296:  �[32m✓�[0m Integrations MDM test apple MDM device enrollment (0.69s)
1297:  �[32m✓�[0m Integrations MDM test apple MDMCSR request (0.68s)
1298:  �[32m✓�[0m Integrations MDM test apple config secret variables upload (0.34s)
1299:  �[32m✓�[0m Integrations MDM test apple get apple MDM (0.46s)
1300:  �[32m✓�[0m Integrations MDM test apple profile deletion (2.10s)
1301:  �[32m✓�[0m Integrations MDM test apple profile management (4.18s)
1302:  �[32m✓�[0m Integrations MDM test apple profile resend race condition (0.92s)
1303:  �[32m✓�[0m Integrations MDM test apple profile retries (2.87s)
1304:  �[32m✓�[0m Integrations MDM test apple profile retries repeated device error (0.45s)
1305:  �[32m✓�[0m Integrations MDM test apple profile retries retry after device error (0.46s)
1306:  �[32m✓�[0m Integrations MDM test apple profile retries retry after verification (0.38s)
...

1412:  �[32m✓�[0m Integrations MDM test certificate template authorization for team users team admin can list own team certificates (0.03s)
1413:  �[32m✓�[0m Integrations MDM test certificate template authorization for team users team admin cannot list other team certificates (0.05s)
1414:  �[32m✓�[0m Integrations MDM test certificate template lifecycle (0.70s)
1415:  �[32m✓�[0m Integrations MDM test certificate template no team with IDP variable (0.44s)
1416:  �[32m✓�[0m Integrations MDM test certificate template renewal (2.73s)
1417:  �[32m✓�[0m Integrations MDM test certificate template renewal boundary 3 1d expires 3 1d (0.26s)
1418:  �[32m✓�[0m Integrations MDM test certificate template renewal long lived 36 5d expires 7d (0.33s)
1419:  �[32m✓�[0m Integrations MDM test certificate template renewal long lived 9 0d expires 2 9d (0.30s)
1420:  �[32m✓�[0m Integrations MDM test certificate template renewal long lived 9 0d expires 3 1d (0.22s)
1421:  �[32m✓�[0m Integrations MDM test certificate template renewal short lived 1 0d expires 4d (0.33s)
1422:  �[32m✓�[0m Integrations MDM test certificate template renewal short lived 1 0d expires 6d (0.24s)
1423:  �[32m✓�[0m Integrations MDM test certificate template renewal short lived 3 0d expires 1 4d (0.35s)
1424:  �[32m✓�[0m Integrations MDM test certificate template renewal short lived 3 0d expires 1 6d (0.25s)
1425:  �[32m✓�[0m Integrations MDM test certificate template resend (1.54s)
1426:  �[32m✓�[0m Integrations MDM test certificate template resend automatic retry (0.78s)
1427:  �[32m✓�[0m Integrations MDM test certificate template spec endpoint and AMAPI failure (0.58s)
1428:  �[32m✓�[0m Integrations MDM test certificate template team transfer (1.13s)
...

1433:  �[32m✓�[0m Integrations MDM test certificate template with SANIDP variable (0.34s)
1434:  �[32m✓�[0m Integrations MDM test clear passcode command (0.53s)
1435:  �[32m✓�[0m Integrations MDM test connected to fleet without checkout (0.46s)
1436:  �[32m✓�[0m Integrations MDM test custom SCEP config (0.33s)
1437:  �[31m✖�[0m Integrations MDM test custom SCEP integration (1.09s)
1438:  �[32m✓�[0m Integrations MDM test custom configuration web URL (1.37s)
1439:  �[32m✓�[0m Integrations MDM test delete MDM profile cancels installs (1.81s)
1440:  �[32m✓�[0m Integrations MDM test delete multiple hosts pending DEP (0.68s)
1441:  �[32m✓�[0m Integrations MDM test deprecated default apple BM team (0.32s)
1442:  �[32m✓�[0m Integrations MDM test device MDM manual enroll (0.23s)
1443:  �[32m✓�[0m Integrations MDM test device multiple auth messages (0.39s)
1444:  �[32m✓�[0m Integrations MDM test digi cert config (0.31s)
1445:  �[32m✓�[0m Integrations MDM test digi cert integration (2.55s)
1446:  �[32m✓�[0m Integrations MDM test digi cert integration with host platform (1.05s)
1447:  �[32m✓�[0m Integrations MDM test disk encryption shared setting (0.87s)
1448:  �[32m✓�[0m Integrations MDM test dont ignore any profile errors (1.19s)
1449:  �[32m✓�[0m Integrations MDM test enforce minium OS version (2.83s)
...

1474:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso disabled no machine info (0.01s)
1475:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso disabled no match for software update device ID (0.13s)
1476:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled (0.30s)
1477:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled cannot parse OS version (0.06s)
1478:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled device above latest (0.03s)
1479:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled device below latest (0.03s)
1480:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled device below latest but MDM cannot request software update (0.05s)
1481:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled device equal to latest (0.04s)
1482:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled no machine info (0.00s)
1483:  �[32m✓�[0m Integrations MDM test enforce minium OS version team setting equal to latest sso enabled no match for software update device ID (0.05s)
1484:  �[32m✓�[0m Integrations MDM test enqueue MDM command (0.62s)
1485:  �[32m✓�[0m Integrations MDM test enqueue MDM command with secret (0.69s)
1486:  �[32m✓�[0m Integrations MDM test enroll after DEP sync IOSI pad OS (0.76s)
1487:  �[32m✓�[0m Integrations MDM test enroll orbit after DEP sync (0.30s)
1488:  �[32m✓�[0m Integrations MDM test enrollment profiles with special chars (0.47s)
1489:  �[32m✓�[0m Integrations MDM test error on enrollment install profile produces activity (0.74s)
1490:  �[32m✓�[0m Integrations MDM test escrow buddy backwards compat (0.66s)
1491:  �[32m✓�[0m Integrations MDM test file vault profile updated on MDM toggle (0.93s)
1492:  �[32m✓�[0m Integrations MDM test fleetd configuration (0.49s)
1493:  �[32m✓�[0m Integrations MDM test get MDMCSR (0.52s)
1494:  �[32m✓�[0m Integrations MDM test get bootstrap token (0.35s)
1495:  �[32m✓�[0m Integrations MDM test get bootstrap token bootstrap token not set (0.01s)
1496:  �[32m✓�[0m Integrations MDM test get bootstrap token bootstrap token set (0.01s)
1497:  �[32m✓�[0m Integrations MDM test get bootstrap token no cert auth association (0.01s)
1498:  �[32m✓�[0m Integrations MDM test get bootstrap token no device record (0.01s)
1499:  �[32m✓�[0m Integrations MDM test get default DEP profile (0.81s)
1500:  �[32m✓�[0m Integrations MDM test get default DEP profile any user with permission to read enrollment profiles on any team can read default (0.39s)
1501:  �[32m✓�[0m Integrations MDM test get default DEP profile any user with permission to read enrollment profiles on any team can read default global maintainer succeeds (0.09s)
1502:  �[32m✓�[0m Integrations MDM test get default DEP profile any user with permission to read enrollment profiles on any team can read default global observer fails (0.09s)
1503:  �[32m✓�[0m Integrations MDM test get default DEP profile any user with permission to read enrollment profiles on any team can read default team maintainer succeeds (0.09s)
1504:  �[32m✓�[0m Integrations MDM test get default DEP profile any user with permission to read enrollment profiles on any team can read default team observer fails (0.08s)
1505:  �[32m✓�[0m Integrations MDM test get default DEP profile no default profile, returns in-code profile (0.01s)
...

1543:  �[32m✓�[0m Integrations MDM test lock unlock wipe IOS ipad OS (5.71s)
1544:  �[32m✓�[0m Integrations MDM test lock unlock wipe IOS ipad OS i OS (1.76s)
1545:  �[32m✓�[0m Integrations MDM test lock unlock wipe IOS ipad OS i OS can't lock manually enrolled host (0.09s)
1546:  �[32m✓�[0m Integrations MDM test lock unlock wipe IOS ipad OS i pad OS (1.86s)
1547:  �[32m✓�[0m Integrations MDM test lock unlock wipe IOS ipad OS i pad OS can't lock manually enrolled host (0.08s)
1548:  �[32m✓�[0m Integrations MDM test lock unlock wipe mac OS (2.01s)
1549:  �[32m✓�[0m Integrations MDM test lock unlock wipe windows linux (2.44s)
1550:  �[32m✓�[0m Integrations MDM test lock unlock wipe windows linux linux (1.07s)
1551:  �[32m✓�[0m Integrations MDM test lock unlock wipe windows linux windows (1.08s)
1552:  �[32m✓�[0m Integrations MDM test macos setup assistant (3.09s)
1553:  �[32m✓�[0m Integrations MDM test managed app configuration wire format (1.05s)
1554:  �[32m✓�[0m Integrations MDM test managed app configuration wire format android wire format (0.35s)
1555:  �[32m✓�[0m Integrations MDM test managed app configuration wire format vpp ios wire format (0.18s)
1556:  �[32m✓�[0m Integrations MDM test managed local account (7.45s)
1557:  �[32m✓�[0m Integrations MDM test managed local account enrollment flow (2.32s)
1558:  �[32m✓�[0m Integrations MDM test managed local account failed enrollment (1.16s)
1559:  �[32m✓�[0m Integrations MDM test managed local account rotation flow (2.28s)
1560:  �[32m✓�[0m Integrations MDM test managed local account setup experience global config (0.28s)
1561:  �[32m✓�[0m Integrations MDM test managed local account setup experience team config (0.45s)
1562:  �[32m✓�[0m Integrations MDM test manual enrollment commands (1.68s)
1563:  �[32m✓�[0m Integrations MDM test migrate MDM device webhook (0.70s)
1564:  �[32m✓�[0m Integrations MDM test migrate MDM device webhook errors (0.95s)
1565:  �[32m✓�[0m Integrations MDM test no email discovery request (0.35s)
1566:  �[32m✓�[0m Integrations MDM test no team VPP app icons (0.75s)
1567:  �[32m✓�[0m Integrations MDM test non MD windows hosts ignored in disk encryption stats (1.77s)
1568:  �[32m✓�[0m Integrations MDM test orbit config nudge settings (1.20s)
1569:  �[32m✓�[0m Integrations MDM test org logo (0.22s)
1570:  �[32m✓�[0m Integrations MDM test puppet match preassign profiles (2.24s)
1571:  �[32m✓�[0m Integrations MDM test puppet run (3.31s)
1572:  �[32m✓�[0m Integrations MDM test recovery lock password integration (14.65s)
1573:  �[32m✓�[0m Integrations MDM test recovery lock password integration MDM command failure - host marked as failed (0.54s)
1574:  �[32m✓�[0m Integrations MDM test recovery lock password integration MDM on, feature enabled - full lifecycle (0.75s)
1575:  �[32m✓�[0m Integrations MDM test recovery lock password integration MDM on, feature off - no recovery lock password set (0.39s)
1576:  �[32m✓�[0m Integrations MDM test recovery lock password integration admin API unenroll soft-deletes stored recovery lock password (0.61s)
1577:  �[32m✓�[0m Integrations MDM test recovery lock password integration auto-rotation triggers after password is viewed (0.62s)
1578:  �[32m✓�[0m Integrations MDM test recovery lock password integration cron sweep soft-deletes stored recovery lock password when host reports enrolled=false (0.69s)
1579:  �[32m✓�[0m Integrations MDM test recovery lock password integration device check out soft-deletes stored recovery lock password (0.63s)
1580:  �[32m✓�[0m Integrations MDM test recovery lock password integration failed host state persists error message (0.60s)
1581:  �[32m✓�[0m Integrations MDM test recovery lock password integration feature disabled with host in pending state (0.75s)
1582:  �[32m✓�[0m Integrations MDM test recovery lock password integration feature disabled with host in verified state (0.77s)
1583:  �[32m✓�[0m Integrations MDM test recovery lock password integration feature re-enabled with host in removing enforcement state (0.81s)
1584:  �[32m✓�[0m Integrations MDM test recovery lock password integration get recovery lock password API (0.55s)
1585:  �[32m✓�[0m Integrations MDM test recovery lock password integration get recovery lock password for non-apple-silicon host returns error (0.38s)
1586:  �[32m✓�[0m Integrations MDM test recovery lock password integration multiple hosts processed in batch (1.86s)
...

1588:  �[32m✓�[0m Integrations MDM test recovery lock password integration re-enrollment soft-deletes stored password and cron re-s ETs (1.17s)
1589:  �[32m✓�[0m Integrations MDM test recovery lock password integration rotate password API initiates rotation (0.64s)
1590:  �[32m✓�[0m Integrations MDM test recovery lock password integration team-specific recovery lock password (1.15s)
1591:  �[32m✓�[0m Integrations MDM test recovery lock password integration viewing password sets auto rotate at (0.54s)
1592:  �[32m✓�[0m Integrations MDM test recreate deleted i phone ADE (0.96s)
1593:  �[32m✓�[0m Integrations MDM test recreate deleted i phone BYOD (0.85s)
1594:  �[32m✓�[0m Integrations MDM test reenrolling ADE device after removing it from ABM (1.67s)
1595:  �[32m✓�[0m Integrations MDM test refetch IOSI pad OS (2.60s)
1596:  �[32m✓�[0m Integrations MDM test refetch after reenroll IOS no delete (1.88s)
1597:  �[32m✓�[0m Integrations MDM test refresh VPP app versions (0.48s)
1598:  �[32m✓�[0m Integrations MDM test refresh VPP app versions for all platforms (1.09s)
1599:  �[32m✓�[0m Integrations MDM test release worker (1.63s)
1600:  �[32m✓�[0m Integrations MDM test release worker automatic release (1.20s)
1601:  �[32m✓�[0m Integrations MDM test release worker automatic release ignores user scoped config profiles (0.54s)
1602:  �[32m✓�[0m Integrations MDM test release worker automatic release waits for config profiles being installed (0.66s)
1603:  �[32m✓�[0m Integrations MDM test remove failed profiles (1.96s)
1604:  �[32m✓�[0m Integrations MDM test run MDM commands (0.75s)
...

1610:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=false; enrollment profile from DEPUs ing post=false; with MDM migration deadline=true (1.75s)
1611:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=false; enrollment profile from DEPUs ing post=true; with MDM migration deadline=false (1.07s)
1612:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=false; enrollment profile from DEPUs ing post=true; with MDM migration deadline=true (1.65s)
1613:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=true; enrollment profile from DEPUs ing post=false; with MDM migration deadline=false (0.88s)
1614:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=true; enrollment profile from DEPUs ing post=false; with MDM migration deadline=true (1.11s)
1615:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=true; enrollment profile from DEPUs ing post=true; with MDM migration deadline=false (0.86s)
1616:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i pad setup experience;enable release manually=true; enrollment profile from DEPUs ing post=true; with MDM migration deadline=true (1.25s)
1617:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=false; enrollment profile from DEPUs ing post=false; with MDM migration deadline=false (0.94s)
1618:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=false; enrollment profile from DEPUs ing post=false; with MDM migration deadline=true (1.11s)
1619:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=false; enrollment profile from DEPUs ing post=true; with MDM migration deadline=false (1.22s)
1620:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=false; enrollment profile from DEPUs ing post=true; with MDM migration deadline=true (0.95s)
1621:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=true; enrollment profile from DEPUs ing post=false; with MDM migration deadline=false (1.23s)
1622:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=true; enrollment profile from DEPUs ing post=false; with MDM migration deadline=true (0.70s)
1623:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=true; enrollment profile from DEPUs ing post=true; with MDM migration deadline=false (0.82s)
1624:  �[32m✓�[0m Integrations MDM test setup experience IOS and i pad OS i phone setup experience;enable release manually=true; enrollment profile from DEPUs ing post=true; with MDM migration deadline=true (0.66s)
1625:  �[32m✓�[0m Integrations MDM test setup experience VPP install error (1.75s)
1626:  �[32m✓�[0m Integrations MDM test setup experience VPPCRUD (1.03s)
...

1717:  �[32m✓�[0m Integrations MDM test windows azure initiated enrollment and mapping (1.15s)
1718:  �[32m✓�[0m Integrations MDM test windows azure initiated tenant IDs (0.22s)
1719:  �[32m✓�[0m Integrations MDM test windows config secret variables upload (0.36s)
1720:  �[32m✓�[0m Integrations MDM test windows device SCEP profile (0.40s)
1721:  �[32m✓�[0m Integrations MDM test windows fresh enroll empty query (0.29s)
1722:  �[32m✓�[0m Integrations MDM test windows migration enabled (0.40s)
1723:  �[32m✓�[0m Integrations MDM test windows profile management (7.20s)
1724:  �[32m✓�[0m Integrations MDM test windows profile management edit profile does not delete locuri used by another profile (0.76s)
1725:  �[32m✓�[0m Integrations MDM test windows profile management edit profile removes locuri sends delete (0.83s)
1726:  �[32m✓�[0m Integrations MDM test windows profile management team transfer removes old profiles and installs new (0.83s)
1727:  �[32m✓�[0m Integrations MDM test windows profile resend (1.22s)
1728:  �[32m✓�[0m Integrations MDM test windows profile resend do not resend if nothing changed (0.52s)
1729:  �[32m✓�[0m Integrations MDM test windows profile resend resend if contents changed (0.37s)
1730:  �[32m✓�[0m Integrations MDM test windows profile retries (0.61s)
1731:  �[32m✓�[0m Integrations MDM test windows profile retries does not retry after successful delivery (0.13s)
1732:  �[32m✓�[0m Integrations MDM test windows profile retries retries 1 time before marking as failed (0.24s)
1733:  �[32m✓�[0m Integrations MDM test windows profile retry (1.96s)
1734:  �[32m✓�[0m Integrations MDM test windows profile retry command gets retried with replace after 418 (0.77s)
1735:  �[32m✓�[0m Integrations MDM test windows profile retry no resend on non-retryable error (0.28s)
1736:  �[32m✓�[0m Integrations MDM test windows profile retry other hosts can not get all commands (0.31s)
1737:  �[32m✓�[0m Integrations MDM test windows profiles fleet variable substitution (1.50s)
1738:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables (0.70s)
1739:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables HOST UUID variable accepted for team (0.05s)
1740:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables HOST UUID variable accepted globally (0.04s)
1741:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables HOST UUID variable with braces accepted (0.05s)
1742:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables batch with regular and variable profiles accepted (0.06s)
1743:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables mixed supported and unsupported variables rejected (0.02s)
1744:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables multiple HOST UUID variables in single profile accepted (0.06s)
1745:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables unknown fleet variable rejected (0.05s)
1746:  �[32m✓�[0m Integrations MDM test windows profiles with fleet variables unsupported variable rejected (0.02s)
1747:  �[32m✓�[0m Integrations MDM test windows rekey flow (0.60s)
1748:  �[32m✓�[0m Integrations MDM test windows user SCEP profile (0.95s)
1749:  �[32m✓�[0m Integrations MDM test wipe linux cancels upcoming activities (0.99s)
1750:  �[32m✓�[0m Integrations MDM test wipe mac OS cancels upcoming activities (0.78s)
1751:  �[32m✓�[0m Integrations MDM test wipe mac OSUs er channel error keeps upcoming activities (0.80s)
1752:  �[32m✓�[0m Integrations MDM test wipe windows cancels upcoming activities (1.08s)
1753:  �[32m✓�[0m Integrations MDM test wipe windows reenroll as new host (1.63s)
1754:  === �[33mSkipped�[0m
1755:  === �[33mSKIP�[0m: server/service TestIntegrationsMDM/TestTurnOnLifecycleEventsWindows/wiped_host_turns_on_MDM/automatic_enrollment (0.00s)
1756:  integration_mdm_lifecycle_test.go:459: wipe tests are not supported for windows automatic enrollment until we fix #TODO
1757:  --- SKIP: TestIntegrationsMDM/TestTurnOnLifecycleEventsWindows/wiped_host_turns_on_MDM/automatic_enrollment (0.00s)
1758:  === �[31mFailed�[0m
1759:  === �[31mFAIL�[0m: server/service TestIntegrationsMDM/TestCustomSCEPIntegration (1.09s)
1760:  integration_mdm_test.go:1068: [awaitTriggerProfileSchedule] Starting profile schedule trigger at integration_mdm_test.go:1072: [awaitTriggerProfileSchedule] Triggering profile schedule...
1761:  integration_mdm_test.go:1088: [awaitTriggerProfileSchedule] Waiting for 3 jobs to complete...
1762:  time=level=INFO msg=pending schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1763:  time=level=INFO msg="Starting manage_apple_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Completing manage_apple_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Starting manage_apple_declarations job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="no hosts with changed declarations"
1764:  time=level=INFO msg="Completing manage_apple_declarations job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Starting manage_windows_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Completing manage_windows_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=integration_mdm_test.go:1098: [awaitTriggerProfileSchedule] All jobs completed successfully at time=level=INFO msg=completed schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1765:  {"time":"2026-06-02T21:19:26.069577607Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACert","error":null,"took":2290270}
1766:  {"time":"2026-06-02T21:19:26.06961694Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACert"}
1767:  {"time":"2026-06-02T21:19:26.111116732Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACaps","error":null,"took":1673}
1768:  {"time":"2026-06-02T21:19:26.111152258Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACaps"}
1769:  {"time":"2026-06-02T21:19:26.12664502Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"PKIOperation","error":null,"took":15155909}
1770:  {"time":"2026-06-02T21:19:26.126703559Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"POST","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=PKIOperation"}
1771:  ts=level=info msg="clearing previous mdm idp account association" host_uuid=DD3FEF96-F17E-4C96-8822-29A85E19A327
1772:  {"time":"2026-06-02T21:19:26.15810584Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACert","error":null,"took":2567880}
1773:  {"time":"2026-06-02T21:19:26.158137869Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACert"}
1774:  {"time":"2026-06-02T21:19:26.212441758Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACaps","error":null,"took":1553}
1775:  {"time":"2026-06-02T21:19:26.212521837Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACaps"}
1776:  {"time":"2026-06-02T21:19:26.228422626Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"PKIOperation","error":null,"took":15531432}
1777:  {"time":"2026-06-02T21:19:26.228475024Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"POST","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=PKIOperation"}
...

1790:  {"time":"2026-06-02T21:19:26.34647567Z","level":"INFO","msg":"","msg":"retrieved push cert","topic":"com.apple.mgmt.External.DD3FEF96-F17E-4C96-8822-29A85E19A327"}
1791:  {"time":"2026-06-02T21:19:26.346475865Z","level":"INFO","msg":"","msg":"retrieved push cert","topic":"com.apple.mgmt.External.DD3FEF96-F17E-4C96-8822-29A85E19A327"}
1792:  {"time":"2026-06-02T21:19:26.349315871Z","level":"INFO","msg":"successfully queued profiles from apple mdm worker","host_uuid":"DD3FEF96-F17E-4C96-8822-29A85E19A327","profiles_sent":2}
1793:  {"time":"2026-06-02T21:19:26.358708351Z","level":"INFO","msg":"sent command to install fleetd","host_uuid":"DD3FEF96-F17E-4C96-8822-29A85E19A327"}
1794:  time=level=INFO msg=completed schedule=apple_mdm_worker instanceID=TestIntegrationsMDM
1795:  {"time":"2026-06-02T21:19:26.369383564Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1796:  {"time":"2026-06-02T21:19:26.381735621Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Acknowledged","command_uuid":"5721cb03-0d44-4c84-ae12-e1e7139083fb"}
1797:  {"time":"2026-06-02T21:19:26.401798664Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1798:  {"time":"2026-06-02T21:19:26.413230154Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Acknowledged","command_uuid":"1631b291-aae9-4a5c-8e78-bc34a53f4305"}
1799:  {"time":"2026-06-02T21:19:26.43300121Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1800:  {"time":"2026-06-02T21:19:26.444570717Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Acknowledged","command_uuid":"a126aa1e-e151-4b7d-94d2-e66e876533c1"}
1801:  {"time":"2026-06-02T21:19:26.459792301Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1802:  {"time":"2026-06-02T21:19:26.471957868Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Acknowledged","command_uuid":"891ba578-df70-454b-a433-0911be207b9e"}
1803:  {"time":"2026-06-02T21:19:26.485939982Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1804:  integration_mdm_test.go:18058: scepName2 challenge:TTYjVROG
1805:  {"time":"2026-06-02T21:19:26.51581797Z","level":"INFO","msg":"scep endpoint","op":"GetCACert","error":null,"took":506268}
1806:  {"time":"2026-06-02T21:19:26.531683415Z","level":"INFO","msg":"scep endpoint","op":"GetCACert","error":null,"took":293267}
1807:  integration_mdm_test.go:1068: [awaitTriggerProfileSchedule] Starting profile schedule trigger at integration_mdm_test.go:1072: [awaitTriggerProfileSchedule] Triggering profile schedule...
1808:  integration_mdm_test.go:1088: [awaitTriggerProfileSchedule] Waiting for 3 jobs to complete...
1809:  time=level=INFO msg=pending schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1810:  time=level=INFO msg="Starting manage_apple_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Completing manage_apple_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Starting manage_apple_declarations job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="no hosts with changed declarations"
1811:  time=level=INFO msg="Completing manage_apple_declarations job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Starting manage_windows_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=time=level=INFO msg="Completing manage_windows_profiles job" test=TestIntegrationsMDM/TestCustomSCEPIntegration time=integration_mdm_test.go:1098: [awaitTriggerProfileSchedule] All jobs completed successfully at time=level=INFO msg=completed schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1812:  {"time":"2026-06-02T21:19:26.734488595Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"DD3FEF96-F17E-4C96-8822-29A85E19A327","type":1,"status":"Idle"}
1813:  {"time":"2026-06-02T21:19:26.745428993Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACaps","error":"invalid profile UUID (only Apple, Windows, and Android config profiles are supported): p1234-uuid","took":1743706}
1814:  {"time":"2026-06-02T21:19:26.745462946Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"invalid profile UUID (only Apple, Windows, and Android config profiles are supported): p1234-uuid"}
1815:  {"time":"2026-06-02T21:19:26.745487782Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/invalid_identifier,p1234-uuid?operation=GetCACaps"}
1816:  {"time":"2026-06-02T21:19:26.749843306Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACaps","error":"unknown identifier in URL path","took":4003590}
1817:  {"time":"2026-06-02T21:19:26.749874244Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"unknown identifier in URL path"}
1818:  {"time":"2026-06-02T21:19:26.749893219Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/invalid_identifier,w1234-uuid?operation=GetCACaps"}
1819:  {"time":"2026-06-02T21:19:26.754644897Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":null,"took":335809}
1820:  {"time":"2026-06-02T21:19:26.754665455Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACaps","error":null,"took":4399195}
1821:  {"time":"2026-06-02T21:19:26.754676315Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/DD3FEF96-F17E-4C96-8822-29A85E19A327%2Cabbffbf81-5ec8-11f1-859e-6a31d0a25e0c%2CscepName%2CAYvloQ0IP2HN5Svz6MkVBcQDs8JGp_wW?operation=GetCACaps"}
1822:  {"time":"2026-06-02T21:19:26.761184367Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACert","error":null,"took":271595}
1823:  {"time":"2026-06-02T21:19:26.761206128Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACert","error":null,"took":4325785}
1824:  {"time":"2026-06-02T21:19:26.761219743Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/DD3FEF96-F17E-4C96-8822-29A85E19A327%2Cabbffbf81-5ec8-11f1-859e-6a31d0a25e0c%2CscepName%2CAYvloQ0IP2HN5Svz6MkVBcQDs8JGp_wW?operation=GetCACert"}
1825:  {"time":"2026-06-02T21:19:26.771548538Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":null,"took":345828}
1826:  {"time":"2026-06-02T21:19:26.786102809Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"PKIOperation","error":null,"took":14520988}
1827:  {"time":"2026-06-02T21:19:26.786128396Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"PKIOperation","error":null,"took":22399937}
1828:  {"time":"2026-06-02T21:19:26.786147642Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/DD3FEF96-F17E-4C96-8822-29A85E19A327%2Cabbffbf81-5ec8-11f1-859e-6a31d0a25e0c%2CscepName%2CAYvloQ0IP2HN5Svz6MkVBcQDs8JGp_wW?message=MIIJmQYJKoZIhvcNAQcCoIIJijCCCYYCAQExCzAJBgUrDgMCGgUAMIIEWAYJKoZIhvcNAQcBoIIESQSCBEUwggRBBgkqhkiG9w0BBwOgggQyMIIELgIBADGCAk4wggJKAgEAMDIwLTEMMAoGA1UEBhMDVVNBMRAwDgYDVQQKEwdldGNkLWNhMQswCQYDVQQLEwJDQQIBATANBgkqhkiG9w0BAQEFAASCAgBLHE86Cwje%2FqCPa0CoZfVBi9Pbjbx%2BfqXZf0y3ZGiqVGP9%2FHJ1KBfrmE622jtbrv5XN7BBLh%2FsPp7JLOVairrod7rEpUhfH1vzqL%2FvzB7eKEbfqE7UE6nXQ8Bh8Chdxss6qLZCSV8pE8xeLx8w2gJify0dl9zuLzI6KwMAu%2FdvBwpCp3VINr0%2FXHWG8Fo3ZlDAXb%2Fese%2BpMKK1mDSOOIoebSg7ZbXeuMNF1Z1erHlf3xWo6RpgtwGcPCOT2Og3mxtXfGubstix5a87%2B50D4JE3TUgCCBDMoaVxOmX7Wd0TyMyRiry6I7sE6vcKXEhRlm98lJ1IgS9HwxDkwj%2BsnklOcVZkadiajhcqFb6A6MNLVLS1hLP0FfLcmRjpOc7fBz0UoBm3ceROAE0kWuWNAg4zr7QVcLB3zbpT4nh0etx%2F6cMY5zBjNZlRnB6hF02JGwI1pSsPBud7anXaAP674oA1wEvV%2FsmioDp%2F5smoTnY5v00lLzRP6jKom%2BrVBzo0Ixzc8TYYuQYRuQPSE%2F4UwLfu08%2B9UkOkO0%2BNFH0gWklYA0GV3rNNsDGw9rOLZTLaaF%2BQm1zDuLQ6zjVUd0tQVdnkglaqhym7qelbBugDgBECMwnCd083l21DbQG%2BBg6ioLEq7lXgTVp%2FDIIttlYi%2BlaIlhBtXRq6rg8JB5iT6hzS2TCCAdUGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI2N2WMkXB9WGAggGwqQ3DdB2xhXEmvoag3A55gi5elevZF8Y5c%2F1PykoZjIpC%2FUz7mGiqnZSHfQcN9Oa81ty3%2F%2B0h6HrjZu7JNLEhoqhdVTGZcs5ERbouzZf0ce3VasmFJh2Gq%2F4Aq%2FY8FluQFNBnFGaD6NHuHXhecx19b9JLc1GfPTG2lte369d1N83OGI9RIFny2Ox57XUmLvDcPwKL2CDZsDZa4mxcSRa%2BupoiVtYUQi5Nh53HIe8azjah680Ba9e7t9KcXj5iKDcCzu%2FVCj7zRyzSQWmcb9JljjAcxUWJA8FN8EI0Py32uYWHi0%2BgpZZdiluo5yDnhLQ9HXveTg9c%2FELFHv9Nh4a4LlFNeYqZUeRqJCrXd5EdE7fJloSp65BJrxoVhGpj9mBw1MxKolASLoNJ%2FRtLFUvMtKNkoFCa8yns5yPvxoyFjHDoepPwG83uJwf%2FeQHlFSCBk00Yb83tOSjl8fsTAwuBrohjj%2BeDBzfkksOGCznbQiuFDpoeVastOLWONc3vl2Gj4EoCvqaswWLVeKURE2CFVhdAJWwicdqSwW4kowIHdnnYwCiMx4LgH1iwZfHemYstoIIC9zCCAvMwggHboAMCAQICAQEwDQYJKoZIhvcNAQELBQAwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUzAeFw0xNjA1MzExMTMwMTNaFw0xNzA1MzExMTMwMTNaMCcxGDAWBgNVBAMMD01ETSBTQ0VQIFNJR05FUjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoiHdRQ1d7Ng11WU6b4G0SrIJ2nqfk0d%2FEXN%2F1nWuHAzBfy%2FER%2FfLZOl1EbfLVraGQDoK5fqJJICwmqVbvhg%2BsicWLwzKV5EKAP9TzHGHV2PuAM4y0EzNrrquWQ12v8EL9l0Rbp6lXOcd2iXhkT09Tehvsl%2FE1Lkl97rX550zTWLrtId0Zys7ycg483wNbdbLTDOlXqdz2hpNNjThqI3yorVfS2n5%2FM15ApmITJCxMuJ66YAkUEQ1Yng%2F%2F%2F%2BJxw4mP2GZRB6tS5%2Bs69g%2FAaGdVh%2Fvrx9DhmuQgnwO6dkRGYZZgA4JOOxt6tmd9lMRbw4DMTNbVMVvJmBCFWYgCqjbbAgMBAAGjKjAoMA4GA1UdDwEB%2FwQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAAt7haGX3oFWyE9pR3N845UVAhb7XajxSOEXMOadghNE8fRHWAVQrRhl97LeMe6oOcCuBcyaNs5jfecvy3%2F2zw6sOCFTivn3LrBYTBMd72xCDvS2wUOVz89g%2Bo8CGZ1aAnQNfBuiH9mPPmV5EnXS4n39M0X%2F22ujgqj3ktZwZ4kgvUNhIDN7prIo5hFTrn3AozN%2FiUtprgjGBxgFB3gRKyW77Vxh6qhYNaYWhxluMoSg6FbHANr5YS9w7kJp3haUIHHOUY%2FQiVsSvan30F7vGTJuChbr2ufP3utF%2FPezZFiM%2BGeWwgh6H3ejATzHkhIVbb2aet%2FNwRZIRsVCB2uryyDGCAhswggIXAgEBMCwwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUwIBATAJBgUrDgMCGgUAoIHFMBIGCmCGSAGG%2BEUBCQIxBBMCMTkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAYBgpghkgBhvhFAQkFMQoECK5%2F6IFsxr7dMBwGCSqGSIb3DQEJBTEPFw0xNjA1MzExMTMwMTNaMCMGCSqGSIb3DQEJBDEWBBRIqF40bQrA9xv6dV1qb%2FD8DfAoATA4BgpghkgBhvhFAQkHMSoTKEExMzA5MDc2MUEzMEY2NjY2NEY4NUQzNzQzM0QyMDY1RTExMTJCQTEwDQYJKoZIhvcNAQEBBQAEggEABsxc4nbRwIPCj2CdLOHOEMo5dVV0nbYi%2FITdSoRl%2F0J5mvyMAAmm4luvVkbbFm8VkhnAV0MYFpVbsD6g9Np67X9Heq82j901IVWQTMYf04AZNHEiRARF%2FUcxGSvjNTsfk1sqxUC9rFBfMQwCfqIKl0Xomb6Uk9OVmfSGNBpMUfOpvDTOBsERet%2BQ6FR2xLXSUvQbzGwN8YxaoQ49VAKdj6FkVydxOd84dKAkfz7LNJXAURYL15%2FjkRnheDvftURlSqSB7a%2B%2FuyCOXF0wdrkHNkQWcTK%2BzVELYXOyizbj6fyhJ6kF1WZwS2VrE0i25GrM%2B77RN1QTtn4rayXHtryLNA%3D%3D&operation=PKIOperation"}
1829:  integration_mdm_test.go:18140: 
1830:  Error Trace:	/home/runner/work/fleet/fleet/server/service/integration_mdm_test.go:18140
1831:  Error:      	Received unexpected error:
1832:  pkcs7: signing time "2026-06-02T21:19:26Z" is outside of certificate validity "2016-05-29T13:47:05Z" to "2026-05-29T13:47:08Z"
1833:  Test:       	TestIntegrationsMDM/TestCustomSCEPIntegration
1834:  ts=level=debug msg="cleanup orphaned software titles" rows_affected=0 took=2.09308ms
1835:  --- FAIL: TestIntegrationsMDM/TestCustomSCEPIntegration (1.09s)
1836:  === �[31mFAIL�[0m: server/service TestIntegrationsMDM/TestSCEPProxy (1.13s)
1837:  {"time":"2026-06-02T21:22:53.327362711Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACert","error":null,"took":2058108}
1838:  {"time":"2026-06-02T21:22:53.327393238Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACert"}
1839:  {"time":"2026-06-02T21:22:53.437031352Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACaps","error":null,"took":2044}
1840:  {"time":"2026-06-02T21:22:53.437063291Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACaps"}
1841:  {"time":"2026-06-02T21:22:53.451583527Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"PKIOperation","error":null,"took":14248130}
1842:  {"time":"2026-06-02T21:22:53.451620586Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"POST","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=PKIOperation"}
1843:  ts=level=info msg="clearing previous mdm idp account association" host_uuid=A2AF2489-E80B-4774-990B-91A132A2EF5C
1844:  {"time":"2026-06-02T21:22:53.481343953Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACert","error":null,"took":2097519}
1845:  {"time":"2026-06-02T21:22:53.481371764Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACert"}
1846:  {"time":"2026-06-02T21:22:53.537310932Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"GetCACaps","error":null,"took":1894}
1847:  {"time":"2026-06-02T21:22:53.537348001Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"GET","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=GetCACaps"}
1848:  {"time":"2026-06-02T21:22:53.551913607Z","level":"INFO","msg":"scep endpoint","component":"http-mdm-apple-scep","op":"PKIOperation","error":null,"took":14275645}
1849:  {"time":"2026-06-02T21:22:53.551951538Z","level":"INFO","msg":"","component":"http-mdm-apple-scep","method":"POST","status":200,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/apple/scep?operation=PKIOperation"}
...

1855:  ts=level=debug msg="maybeAssociateHostMDMIdPWithScimUser: MDM IdP account is nil, skipping association" host_id=333
1856:  {"time":"2026-06-02T21:22:53.593455978Z","level":"INFO","msg":"","component":"http-mdm-apple-mdm","id":"A2AF2489-E80B-4774-990B-91A132A2EF5C","type":1,"msg":"TokenUpdate"}
1857:  {"time":"2026-06-02T21:22:53.597576221Z","level":"INFO","msg":"received token update","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C"}
1858:  {"time":"2026-06-02T21:22:53.626935366Z","level":"INFO","msg":"queueing post-enroll task for manual enrolled device","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C"}
1859:  {"time":"2026-06-02T21:22:53.626960403Z","level":"INFO","msg":"queuing Apple MDM job","enabled":"true","apple_mdm":"post_manual_enrollment","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C","platform":"darwin","with_enroll_reference":false,"from_mdm_migration":false}
1860:  time=level=INFO msg=pending schedule=apple_mdm_worker instanceID=TestIntegrationsMDM
1861:  {"time":"2026-06-02T21:22:53.642347379Z","level":"INFO","msg":"installing profiles post-enrollment","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C","profile_count":2}
1862:  {"time":"2026-06-02T21:22:53.661018673Z","level":"INFO","msg":"","msg":"retrieved push cert","topic":"com.apple.mgmt.External.A2AF2489-E80B-4774-990B-91A132A2EF5C"}
1863:  {"time":"2026-06-02T21:22:53.661020454Z","level":"INFO","msg":"","msg":"retrieved push cert","topic":"com.apple.mgmt.External.A2AF2489-E80B-4774-990B-91A132A2EF5C"}
1864:  {"time":"2026-06-02T21:22:53.663626352Z","level":"INFO","msg":"successfully queued profiles from apple mdm worker","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C","profiles_sent":2}
1865:  {"time":"2026-06-02T21:22:53.672265371Z","level":"INFO","msg":"sent command to install fleetd","host_uuid":"A2AF2489-E80B-4774-990B-91A132A2EF5C"}
1866:  integration_mdm_test.go:1068: [awaitTriggerProfileSchedule] Starting profile schedule trigger at integration_mdm_test.go:1072: [awaitTriggerProfileSchedule] Triggering profile schedule...
1867:  time=level=INFO msg=completed schedule=apple_mdm_worker instanceID=TestIntegrationsMDM
1868:  integration_mdm_test.go:1088: [awaitTriggerProfileSchedule] Waiting for 3 jobs to complete...
1869:  time=level=INFO msg=pending schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1870:  time=level=INFO msg="Starting manage_apple_profiles job" test=TestIntegrationsMDM/TestSCEPProxy time=time=level=ERROR msg="enqueue command to remove profiles" details="commander remove profile: enqueuing command: Error 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (\"integrationMDMTestSuite\".\"nano_enrollment_queue\", CONSTRAINT \"nano_enrollment_queue_ibfk_1\" FOREIGN KEY (\"id\") REFERENCES \"nano_enrollments\" (\"id\") ON DELETE CASCADE ON UPDATE CASCADE)"
1871:  time=level=ERROR msg="enqueue command to remove profiles" details="commander remove profile: enqueuing command: Error 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (\"integrationMDMTestSuite\".\"nano_enrollment_queue\", CONSTRAINT \"nano_enrollment_queue_ibfk_1\" FOREIGN KEY (\"id\") REFERENCES \"nano_enrollments\" (\"id\") ON DELETE CASCADE ON UPDATE CASCADE)"
1872:  time=level=ERROR msg="enqueue command to remove profiles" details="commander remove profile: enqueuing command: Error 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (\"integrationMDMTestSuite\".\"nano_enrollment_queue\", CONSTRAINT \"nano_enrollment_queue_ibfk_1\" FOREIGN KEY (\"id\") REFERENCES \"nano_enrollments\" (\"id\") ON DELETE CASCADE ON UPDATE CASCADE)"
1873:  time=level=INFO msg="Completing manage_apple_profiles job" test=TestIntegrationsMDM/TestSCEPProxy time=time=level=INFO msg="Starting manage_apple_declarations job" test=TestIntegrationsMDM/TestSCEPProxy time=time=level=INFO msg="no hosts with changed declarations"
1874:  time=level=INFO msg="Completing manage_apple_declarations job" test=TestIntegrationsMDM/TestSCEPProxy time=time=level=INFO msg="Starting manage_windows_profiles job" test=TestIntegrationsMDM/TestSCEPProxy time=time=level=INFO msg="Completing manage_windows_profiles job" test=TestIntegrationsMDM/TestSCEPProxy time=integration_mdm_test.go:1098: [awaitTriggerProfileSchedule] All jobs completed successfully at time=level=INFO msg=completed schedule=mdm_apple_profile_manager instanceID=TestIntegrationsMDM
1875:  {"time":"2026-06-02T21:22:53.735373761Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"missing operation"}
1876:  {"time":"2026-06-02T21:22:53.735395761Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c"}
1877:  {"time":"2026-06-02T21:22:53.73908166Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACaps","error":"SCEP proxy is not configured","took":3414073}
1878:  {"time":"2026-06-02T21:22:53.739098101Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"SCEP proxy is not configured"}
1879:  {"time":"2026-06-02T21:22:53.739117026Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?operation=GetCACaps"}
1880:  {"time":"2026-06-02T21:22:53.742932525Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACert","error":"SCEP proxy is not configured","took":3556386}
1881:  {"time":"2026-06-02T21:22:53.742958964Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"SCEP proxy is not configured"}
1882:  {"time":"2026-06-02T21:22:53.742975034Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?operation=GetCACert"}
1883:  {"time":"2026-06-02T21:22:53.746860038Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"PKIOperation","error":"SCEP proxy is not configured","took":3567878}
1884:  {"time":"2026-06-02T21:22:53.746874454Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"SCEP proxy is not configured"}
1885:  {"time":"2026-06-02T21:22:53.746883812Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?message=MIIJmQYJKoZIhvcNAQcCoIIJijCCCYYCAQExCzAJBgUrDgMCGgUAMIIEWAYJKoZIhvcNAQcBoIIESQSCBEUwggRBBgkqhkiG9w0BBwOgggQyMIIELgIBADGCAk4wggJKAgEAMDIwLTEMMAoGA1UEBhMDVVNBMRAwDgYDVQQKEwdldGNkLWNhMQswCQYDVQQLEwJDQQIBATANBgkqhkiG9w0BAQEFAASCAgBLHE86Cwje%2FqCPa0CoZfVBi9Pbjbx%2BfqXZf0y3ZGiqVGP9%2FHJ1KBfrmE622jtbrv5XN7BBLh%2FsPp7JLOVairrod7rEpUhfH1vzqL%2FvzB7eKEbfqE7UE6nXQ8Bh8Chdxss6qLZCSV8pE8xeLx8w2gJify0dl9zuLzI6KwMAu%2FdvBwpCp3VINr0%2FXHWG8Fo3ZlDAXb%2Fese%2BpMKK1mDSOOIoebSg7ZbXeuMNF1Z1erHlf3xWo6RpgtwGcPCOT2Og3mxtXfGubstix5a87%2B50D4JE3TUgCCBDMoaVxOmX7Wd0TyMyRiry6I7sE6vcKXEhRlm98lJ1IgS9HwxDkwj%2BsnklOcVZkadiajhcqFb6A6MNLVLS1hLP0FfLcmRjpOc7fBz0UoBm3ceROAE0kWuWNAg4zr7QVcLB3zbpT4nh0etx%2F6cMY5zBjNZlRnB6hF02JGwI1pSsPBud7anXaAP674oA1wEvV%2FsmioDp%2F5smoTnY5v00lLzRP6jKom%2BrVBzo0Ixzc8TYYuQYRuQPSE%2F4UwLfu08%2B9UkOkO0%2BNFH0gWklYA0GV3rNNsDGw9rOLZTLaaF%2BQm1zDuLQ6zjVUd0tQVdnkglaqhym7qelbBugDgBECMwnCd083l21DbQG%2BBg6ioLEq7lXgTVp%2FDIIttlYi%2BlaIlhBtXRq6rg8JB5iT6hzS2TCCAdUGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI2N2WMkXB9WGAggGwqQ3DdB2xhXEmvoag3A55gi5elevZF8Y5c%2F1PykoZjIpC%2FUz7mGiqnZSHfQcN9Oa81ty3%2F%2B0h6HrjZu7JNLEhoqhdVTGZcs5ERbouzZf0ce3VasmFJh2Gq%2F4Aq%2FY8FluQFNBnFGaD6NHuHXhecx19b9JLc1GfPTG2lte369d1N83OGI9RIFny2Ox57XUmLvDcPwKL2CDZsDZa4mxcSRa%2BupoiVtYUQi5Nh53HIe8azjah680Ba9e7t9KcXj5iKDcCzu%2FVCj7zRyzSQWmcb9JljjAcxUWJA8FN8EI0Py32uYWHi0%2BgpZZdiluo5yDnhLQ9HXveTg9c%2FELFHv9Nh4a4LlFNeYqZUeRqJCrXd5EdE7fJloSp65BJrxoVhGpj9mBw1MxKolASLoNJ%2FRtLFUvMtKNkoFCa8yns5yPvxoyFjHDoepPwG83uJwf%2FeQHlFSCBk00Yb83tOSjl8fsTAwuBrohjj%2BeDBzfkksOGCznbQiuFDpoeVastOLWONc3vl2Gj4EoCvqaswWLVeKURE2CFVhdAJWwicdqSwW4kowIHdnnYwCiMx4LgH1iwZfHemYstoIIC9zCCAvMwggHboAMCAQICAQEwDQYJKoZIhvcNAQELBQAwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUzAeFw0xNjA1MzExMTMwMTNaFw0xNzA1MzExMTMwMTNaMCcxGDAWBgNVBAMMD01ETSBTQ0VQIFNJR05FUjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoiHdRQ1d7Ng11WU6b4G0SrIJ2nqfk0d%2FEXN%2F1nWuHAzBfy%2FER%2FfLZOl1EbfLVraGQDoK5fqJJICwmqVbvhg%2BsicWLwzKV5EKAP9TzHGHV2PuAM4y0EzNrrquWQ12v8EL9l0Rbp6lXOcd2iXhkT09Tehvsl%2FE1Lkl97rX550zTWLrtId0Zys7ycg483wNbdbLTDOlXqdz2hpNNjThqI3yorVfS2n5%2FM15ApmITJCxMuJ66YAkUEQ1Yng%2F%2F%2F%2BJxw4mP2GZRB6tS5%2Bs69g%2FAaGdVh%2Fvrx9DhmuQgnwO6dkRGYZZgA4JOOxt6tmd9lMRbw4DMTNbVMVvJmBCFWYgCqjbbAgMBAAGjKjAoMA4GA1UdDwEB%2FwQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAAt7haGX3oFWyE9pR3N845UVAhb7XajxSOEXMOadghNE8fRHWAVQrRhl97LeMe6oOcCuBcyaNs5jfecvy3%2F2zw6sOCFTivn3LrBYTBMd72xCDvS2wUOVz89g%2Bo8CGZ1aAnQNfBuiH9mPPmV5EnXS4n39M0X%2F22ujgqj3ktZwZ4kgvUNhIDN7prIo5hFTrn3AozN%2FiUtprgjGBxgFB3gRKyW77Vxh6qhYNaYWhxluMoSg6FbHANr5YS9w7kJp3haUIHHOUY%2FQiVsSvan30F7vGTJuChbr2ufP3utF%2FPezZFiM%2BGeWwgh6H3ejATzHkhIVbb2aet%2FNwRZIRsVCB2uryyDGCAhswggIXAgEBMCwwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUwIBATAJBgUrDgMCGgUAoIHFMBIGCmCGSAGG%2BEUBCQIxBBMCMTkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAYBgpghkgBhvhFAQkFMQoECK5%2F6IFsxr7dMBwGCSqGSIb3DQEJBTEPFw0xNjA1MzExMTMwMTNaMCMGCSqGSIb3DQEJBDEWBBRIqF40bQrA9xv6dV1qb%2FD8DfAoATA4BgpghkgBhvhFAQkHMSoTKEExMzA5MDc2MUEzMEY2NjY2NEY4NUQzNzQzM0QyMDY1RTExMTJCQTEwDQYJKoZIhvcNAQEBBQAEggEABsxc4nbRwIPCj2CdLOHOEMo5dVV0nbYi%2FITdSoRl%2F0J5mvyMAAmm4luvVkbbFm8VkhnAV0MYFpVbsD6g9Np67X9Heq82j901IVWQTMYf04AZNHEiRARF%2FUcxGSvjNTsfk1sqxUC9rFBfMQwCfqIKl0Xomb6Uk9OVmfSGNBpMUfOpvDTOBsERet%2BQ6FR2xLXSUvQbzGwN8YxaoQ49VAKdj6FkVydxOd84dKAkfz7LNJXAURYL15%2FjkRnheDvftURlSqSB7a%2B%2FuyCOXF0wdrkHNkQWcTK%2BzVELYXOyizbj6fyhJ6kF1WZwS2VrE0i25GrM%2B77RN1QTtn4rayXHtryLNA%3D%3D&operation=PKIOperation"}
1886:  {"time":"2026-06-02T21:22:53.74718372Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetNextCACert","error":"operation not implemented","took":350}
1887:  {"time":"2026-06-02T21:22:53.747196714Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"operation not implemented"}
1888:  {"time":"2026-06-02T21:22:53.747204058Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":400,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?operation=GetNextCACert"}
1889:  {"time":"2026-06-02T21:22:53.753464239Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":"http request failed with status 410 Gone, msg: ","took":385681}
1890:  {"time":"2026-06-02T21:22:53.753525583Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACaps","error":"Could not GetCACaps from SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: ","took":3889069}
1891:  {"time":"2026-06-02T21:22:53.753536263Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"Could not GetCACaps from SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: "}
1892:  {"time":"2026-06-02T21:22:53.753547093Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":500,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?operation=GetCACaps"}
1893:  {"time":"2026-06-02T21:22:53.766168095Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACert","error":"http request failed with status 410 Gone, msg: ","took":237977}
1894:  {"time":"2026-06-02T21:22:53.76620838Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"GetCACert","error":"Could not GetCACert from SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: ","took":12428634}
1895:  {"time":"2026-06-02T21:22:53.766216284Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"Could not GetCACert from SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: "}
1896:  {"time":"2026-06-02T21:22:53.766228888Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":500,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?operation=GetCACert"}
1897:  {"time":"2026-06-02T21:22:53.777279484Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":"http request failed with status 410 Gone, msg: ","took":199872}
1898:  {"time":"2026-06-02T21:22:53.777515293Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":"http request failed with status 410 Gone, msg: ","took":209750}
1899:  {"time":"2026-06-02T21:22:53.777732377Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"PKIOperation","error":"http request failed with status 410 Gone, msg: ","took":202657}
1900:  {"time":"2026-06-02T21:22:53.777770578Z","level":"INFO","msg":"scep endpoint","component":"http-scep-proxy","op":"PKIOperation","error":"Could not do PKIOperation on SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: ","took":11204295}
1901:  {"time":"2026-06-02T21:22:53.777783442Z","level":"INFO","msg":"","component":"http-scep-proxy","err":"Could not do PKIOperation on SCEP server http://127.0.0.1:43963: http request failed with status 410 Gone, msg: "}
1902:  {"time":"2026-06-02T21:22:53.777797338Z","level":"INFO","msg":"","component":"http-scep-proxy","method":"GET","status":500,"proto":"HTTP/1.1","host":"127.0.0.1","user_agent":"Go-http-client/1.1","path":"/mdm/scep/proxy/A2AF2489-E80B-4774-990B-91A132A2EF5C%2Ca372e3220-5ec9-11f1-859e-6a31d0a25e0c?message=MIIJmQYJKoZIhvcNAQcCoIIJijCCCYYCAQExCzAJBgUrDgMCGgUAMIIEWAYJKoZIhvcNAQcBoIIESQSCBEUwggRBBgkqhkiG9w0BBwOgggQyMIIELgIBADGCAk4wggJKAgEAMDIwLTEMMAoGA1UEBhMDVVNBMRAwDgYDVQQKEwdldGNkLWNhMQswCQYDVQQLEwJDQQIBATANBgkqhkiG9w0BAQEFAASCAgBLHE86Cwje%2FqCPa0CoZfVBi9Pbjbx%2BfqXZf0y3ZGiqVGP9%2FHJ1KBfrmE622jtbrv5XN7BBLh%2FsPp7JLOVairrod7rEpUhfH1vzqL%2FvzB7eKEbfqE7UE6nXQ8Bh8Chdxss6qLZCSV8pE8xeLx8w2gJify0dl9zuLzI6KwMAu%2FdvBwpCp3VINr0%2FXHWG8Fo3ZlDAXb%2Fese%2BpMKK1mDSOOIoebSg7ZbXeuMNF1Z1erHlf3xWo6RpgtwGcPCOT2Og3mxtXfGubstix5a87%2B50D4JE3TUgCCBDMoaVxOmX7Wd0TyMyRiry6I7sE6vcKXEhRlm98lJ1IgS9HwxDkwj%2BsnklOcVZkadiajhcqFb6A6MNLVLS1hLP0FfLcmRjpOc7fBz0UoBm3ceROAE0kWuWNAg4zr7QVcLB3zbpT4nh0etx%2F6cMY5zBjNZlRnB6hF02JGwI1pSsPBud7anXaAP674oA1wEvV%2FsmioDp%2F5smoTnY5v00lLzRP6jKom%2BrVBzo0Ixzc8TYYuQYRuQPSE%2F4UwLfu08%2B9UkOkO0%2BNFH0gWklYA0GV3rNNsDGw9rOLZTLaaF%2BQm1zDuLQ6zjVUd0tQVdnkglaqhym7qelbBugDgBECMwnCd083l21DbQG%2BBg6ioLEq7lXgTVp%2FDIIttlYi%2BlaIlhBtXRq6rg8JB5iT6hzS2TCCAdUGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI2N2WMkXB9WGAggGwqQ3DdB2xhXEmvoag3A55gi5elevZF8Y5c%2F1PykoZjIpC%2FUz7mGiqnZSHfQcN9Oa81ty3%2F%2B0h6HrjZu7JNLEhoqhdVTGZcs5ERbouzZf0ce3VasmFJh2Gq%2F4Aq%2FY8FluQFNBnFGaD6NHuHXhecx19b9JLc1GfPTG2lte369d1N83OGI9RIFny2Ox57XUmLvDcPwKL2CDZsDZa4mxcSRa%2BupoiVtYUQi5Nh53HIe8azjah680Ba9e7t9KcXj5iKDcCzu%2FVCj7zRyzSQWmcb9JljjAcxUWJA8FN8EI0Py32uYWHi0%2BgpZZdiluo5yDnhLQ9HXveTg9c%2FELFHv9Nh4a4LlFNeYqZUeRqJCrXd5EdE7fJloSp65BJrxoVhGpj9mBw1MxKolASLoNJ%2FRtLFUvMtKNkoFCa8yns5yPvxoyFjHDoepPwG83uJwf%2FeQHlFSCBk00Yb83tOSjl8fsTAwuBrohjj%2BeDBzfkksOGCznbQiuFDpoeVastOLWONc3vl2Gj4EoCvqaswWLVeKURE2CFVhdAJWwicdqSwW4kowIHdnnYwCiMx4LgH1iwZfHemYstoIIC9zCCAvMwggHboAMCAQICAQEwDQYJKoZIhvcNAQELBQAwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUzAeFw0xNjA1MzExMTMwMTNaFw0xNzA1MzExMTMwMTNaMCcxGDAWBgNVBAMMD01ETSBTQ0VQIFNJR05FUjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoiHdRQ1d7Ng11WU6b4G0SrIJ2nqfk0d%2FEXN%2F1nWuHAzBfy%2FER%2FfLZOl1EbfLVraGQDoK5fqJJICwmqVbvhg%2BsicWLwzKV5EKAP9TzHGHV2PuAM4y0EzNrrquWQ12v8EL9l0Rbp6lXOcd2iXhkT09Tehvsl%2FE1Lkl97rX550zTWLrtId0Zys7ycg483wNbdbLTDOlXqdz2hpNNjThqI3yorVfS2n5%2FM15ApmITJCxMuJ66YAkUEQ1Yng%2F%2F%2F%2BJxw4mP2GZRB6tS5%2Bs69g%2FAaGdVh%2Fvrx9DhmuQgnwO6dkRGYZZgA4JOOxt6tmd9lMRbw4DMTNbVMVvJmBCFWYgCqjbbAgMBAAGjKjAoMA4GA1UdDwEB%2FwQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAAt7haGX3oFWyE9pR3N845UVAhb7XajxSOEXMOadghNE8fRHWAVQrRhl97LeMe6oOcCuBcyaNs5jfecvy3%2F2zw6sOCFTivn3LrBYTBMd72xCDvS2wUOVz89g%2Bo8CGZ1aAnQNfBuiH9mPPmV5EnXS4n39M0X%2F22ujgqj3ktZwZ4kgvUNhIDN7prIo5hFTrn3AozN%2FiUtprgjGBxgFB3gRKyW77Vxh6qhYNaYWhxluMoSg6FbHANr5YS9w7kJp3haUIHHOUY%2FQiVsSvan30F7vGTJuChbr2ufP3utF%2FPezZFiM%2BGeWwgh6H3ejATzHkhIVbb2aet%2FNwRZIRsVCB2uryyDGCAhswggIXAgEBMCwwJzEYMBYGA1UEAwwPTURNIFNDRVAgU0lHTkVSMQswCQYDVQQGEwJVUwIBATAJBgUrDgMCGgUAoIHFMBIGCmCGSAGG%2BEUBCQIxBBMCMTkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAYBgpghkgBhvhFAQkFMQoECK5%2F6IFsxr7dMBwGCSqGSIb3DQEJBTEPFw0xNjA1MzExMTMwMTNaMCMGCSqGSIb3DQEJBDEWBBRIqF40bQrA9xv6dV1qb%2FD8DfAoATA4BgpghkgBhvhFAQkHMSoTKEExMzA5MDc2MUEzMEY2NjY2NEY4NUQzNzQzM0QyMDY1RTExMTJCQTEwDQYJKoZIhvcNAQEBBQAEggEABsxc4nbRwIPCj2CdLOHOEMo5dVV0nbYi%2FITdSoRl%2F0J5mvyMAAmm4luvVkbbFm8VkhnAV0MYFpVbsD6g9Np67X9Heq82j901IVWQTMYf04AZNHEiRARF%2FUcxGSvjNTsfk1sqxUC9rFBfMQwCfqIKl0Xomb6Uk9OVmfSGNBpMUfOpvDTOBsERet%2BQ6FR2xLXSUvQbzGwN8YxaoQ49VAKdj6FkVydxOd84dKAkfz7LNJXAURYL15%2FjkRnheDvftURlSqSB7a%2B%2FuyCOXF0wdrkHNkQWcTK%2BzVELYXOyizbj6fyhJ6kF1WZwS2VrE0i25GrM%2B77RN1QTtn4rayXHtryLNA%3D%3D&operation=PKIOperation"}
1903:  {"time":"2026-06-02T21:22:53.834776803Z","level":"INFO","msg":"scep endpoint","component":"scep-proxy-service","op":"GetCACaps","error":"Get \"http://127.0.0.1:36725?operation=GetCAC...

@codecov

codecov Bot commented Jun 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.07692% with 11 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (rc-patch-fleet-v4.86.1@a77bf6b). Learn more about missing BASE report.

Files with missing lines Patch % Lines
server/mdm/apple/vpp/api.go 82.25% 6 Missing and 5 partials ⚠️
Additional details and impacted files
@@                    Coverage Diff                    @@
##             rc-patch-fleet-v4.86.1   #46684   +/-   ##
=========================================================
  Coverage                          ?   66.76%           
=========================================================
  Files                             ?     2749           
  Lines                             ?   219926           
  Branches                          ?    10771           
=========================================================
  Hits                              ?   146833           
  Misses                            ?    59799           
  Partials                          ?    13294           
Flag Coverage Δ
backend 68.58% <83.07%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@georgekarrv
georgekarrv merged commit 9aa8853 into rc-patch-fleet-v4.86.1 Jun 2, 2026
29 of 33 checks passed
@georgekarrv
georgekarrv deleted the georgekarrv/fix-vpp-retry-recursion-cp branch June 2, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants