diff --git a/.syncro-cust.json b/.syncro-cust.json new file mode 100644 index 00000000..9099623c --- /dev/null +++ b/.syncro-cust.json @@ -0,0 +1,16 @@ +{ + "id": 3011084, + "business_name": "Bardach, Barbara", + "prepay_hours": "16.25", + "notes": "13.5 Hours moved from AT - 11/30/16 - B\n\n**Please call customer prior to arriving for exact directions because GPS will route you to another location**\nPhone overwritten in QBO: 5207420303", + "contacts": [ + { + "firstname": null, + "lastname": null, + "title": null, + "email": "barbara@bardach.net", + "phone": "520-275-3867", + "mobile": "520-275-3867" + } + ] +} diff --git a/errorlog.md b/errorlog.md index 09afbf96..68591fbe 100644 --- a/errorlog.md +++ b/errorlog.md @@ -19,6 +19,14 @@ Categories (the `[type]` tag): _(none)_ = skill/command execution failure · +2026-07-15 | Howard-Home | msp360 | POST /api/Licenses/Release -> HTTP 400: {'Message': 'Licensing API methods are not enabled for your account'} [ctx: command=release-license] + +2026-07-15 | Howard-Home | msp360 | release-license --user-id alone returns 400 - API requires LicenseID in Release payload [ctx: endpoint=/api/Licenses/Release] + +2026-07-15 | Howard-Home | msp360 | POST /api/Licenses/Release -> HTTP 400: {'Message': 'The request is invalid.', 'ModelState': {'releaseLicense.LicenseID': ['The LicenseID field is required.']}} [ctx: command=release-license] + +2026-07-15 | Howard-Home | rmm/powershell-dispatch | [friction] embedded escaped double-quotes in CIM -Filter mangled by RMM dispatch layer; fix = quote-free filters built by string concat / [char]39 [ctx: ref=feedback_windows_quote_stripping] + 2026-07-14 | Howard-Home | discord-dm | [correction] user said 'send to me and winter'; assumed 'me'=mike, but identity.json user is howard — 'me' must resolve to the session user from identity.json 2026-07-14 | Howard-Home | prairie-schooner/network-discovery | [correction] assumed 80:5E:C0 and E4:24:6C OUIs were Ubiquiti; correct is Yealink (phones) and Dahua (NVR) - verified via TLS cert subjects diff --git a/session-logs/2026-07/2026-07-14-howard-msp360-backup-list-discord.md b/session-logs/2026-07/2026-07-14-howard-msp360-backup-list-discord.md index cf15fa95..b75ed671 100644 --- a/session-logs/2026-07/2026-07-14-howard-msp360-backup-list-discord.md +++ b/session-logs/2026-07/2026-07-14-howard-msp360-backup-list-discord.md @@ -56,3 +56,59 @@ First send went to Mike and Winter — misresolved "me" in the request to Mike ( - Skills used: `msp360`, `discord-dm`, memory rule `feedback_identity_precedence`. - MSP360 status codes: 0/1 OK, 2 warn, 3 fail, 4 running, 6 interrupted, 7 completed-with-warnings. + +## Update: 17:41 PT — backup triage + expired-license fix attempt + +### Summary + +Triaged the failing and no-plan backup clients (Air Pros and Tucson Coin excluded per Howard). Pulled `monitoring --failed`, `monitoring --stale 30`, and the full license pool. + +Key finding: the 2026-07-01 monthly renewal rolled 41 licenses to 2026-08-01, but 4 Server seats did NOT renew and expired — CS-SERVER (Cascades of Tucson), VWP-FILES + WINFileSvr (Valleywide Plastering), DESKTOP-BMBTQLI (Len's Auto). All four machines throw MBSLicense Critical; all are in automatic license mode (LicMode=2). Free pool has only ONE valid Server seat (exp 2026-08-01, id 7454b8e3-5aa7-43a1-b3c1-eb7605bad6c2); the other 9 free Server seats are also expired. + +Attempted the fix via API (release expired + regrant). BLOCKED: `/api/Licenses/Release` returns HTTP 400 "Licensing API methods are not enabled for your account" — Grant/Release/Revoke are feature-gated off, same class as the /api/Computers gate. Fix is console-only. + +### Triage results + +P1 failures (non-license): +- Hartman / DESKTOP-EVA4H1A: daily plan hard-FAILED (ran 2026-07-14, no error detail in monitoring feed — needs agent-side log). +- Jimmy Company / Blaster2: local destination FULL (Critical, code 1506) on both plans incl. image/system-state. +- Financial Safeguards / FSG-SRV-02: no full backup scheduled -> retention policy cannot apply (code 1537). + +P1 no-plan (billed users, zero plans reporting): Arizona Medical Transit (148 GB), Martell and Associates (3.27 TB), Rincon Vista Veterinary (1.87 TB), Stamback Services (3 TB), Sorensen (0 GB — never landed data). Need per-client human decision: reinstall agent or stop billing. + +P2 stale successes: Instrumental Music IMC1 images (last 2024-10-24), Glaztech GTI-INV-VMHOST image+Hyper-V (2025-10-26/28), Tedards (2025-07-12, 0 GB), Tucson Safety TSAM-SERVER (2026-02-25), Desert RV local (2026-05-07), Len's Auto LAB-SVR image (2026-06-07), Dataforth SAGE-SQL old interrupted restore plan (cosmetic). + +P3 benign: path-missing/file-in-use/skip-mask warnings (Anaise, Desert RV, Rohrbach, Dataforth PBX); IMC1 SQL LSN mismatch self-healed via forced full. "Consistency check" rows stuck Running/never look like UI artifacts. + +### Key Decisions + +- Fix order proposed: license seats -> Jimmy disk full -> Hartman failure -> no-plan decisions -> stale sweep. +- Did not experiment with granting expired pool seats; blocked by API gate anyway. +- License renewal = spending money + console access = Mike's call; proposed ask-forum DM to Mike (renew 4 Server seats + enable Licensing API methods), awaiting Howard's go. + +### Problems Encountered + +- `release-license --user-id` alone -> HTTP 400 (LicenseID field required). Retried with `--license-id`; logged to errorlog. +- `/api/Licenses/Release` with full payload -> HTTP 400 "Licensing API methods are not enabled for your account" — hard blocker, console-only fix. +- `billing --json` not a valid flag (billing subcommand has no --json; plain output is already JSON). + +### Credentials & Secrets + +- None new. Vault has ONLY the MSP360 API creds (`msp-tools/msp360-api.sops.yaml`, login kY9PvDdWki); NO console login stored — console admin is Mike's account (created API creds 2026-05-18). + +### Reference Information + +- Expired license IDs: WINFileSvr=93b3412b-9746-4949-a592-5369cd29d1c7, VWP-FILES=0a120352-aa4a-4785-bfdb-4e0c2980dd3c, CS-SERVER=7d26ae45-8af9-4fd0-8bed-011d18e82631, DESKTOP-BMBTQLI=52e2b4a4-da50-4980-bfad-61f3b397e559 +- User IDs: WINFileSvr=30d7edce-1d60-4657-abc1-58ad30210e81, VWP-FILES=634e86db-b3e5-4f4e-ae9b-74d83eeb21de, CS-SERVER=08d55d69-bf76-40b5-ae45-b1bbe0064c14, DESKTOP-BMBTQLI=06109a61-2ba2-4547-8294-f88d5e1799ba +- Only valid free Server seat: 7454b8e3-5aa7-43a1-b3c1-eb7605bad6c2 (exp 2026-08-01) +- MSP360 status codes: 2 warn / 3 fail / 6 interrupted / 7 completed-with-warnings; error codes: 1407 MBSLicense, 1506 NotEnoughSpaceOnLocalDestination, 1537 retention-without-full, 1601 PathNotFound, 1605 file-in-use, 1811 SQL LSN mismatch. + +### Pending / Incomplete Tasks + +- AWAITING GO: ask-forum DM to Mike — renew 4 Server seats in MSP360 console + optionally enable Licensing API methods (and Remote Management API). +- Jimmy Company Blaster2: clear/expand full local backup destination. +- Hartman DESKTOP-EVA4H1A: investigate hard-failing daily plan (agent logs). +- Financial Safeguards FSG-SRV-02: schedule full backup or enable Forever-Forward-Incremental. +- No-plan clients (AMT, Martell, Rincon Vista, Sorensen, Stamback): reinstall-or-stop-billing decision per client. +- Stale P2 sweep (Instrumental, Glaztech, Tedards, Tucson Safety, Desert RV, Len's LAB-SVR). +- Deferred per Howard: Air Pros, Tucson Coin.