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
Telemetry insights: 2026-09-20 — v1.6.0 GA day: 67% of pipeline runs emit no terminal event #5147
v1.6.0's first GA day is the finding: 67.3% of its pipeline runs (8,088 of 12,014) ended with neither a Pipeline Run Completed nor a Pipeline Run Errored event — 4.3× the fleet's 15.8% and 5.9× the fleet median, on a version whose first_seen is inside the window.
The gap is not inflated start counts: 1.6.0 emits 32.7 pipeline starts per cognee.remember (1.5.3: 34.8, 1.4.2: 31.5) but only 5.3 completions (1.5.3: 15.4, 1.4.2: 29.6). Same work submitted, one third of the terminal events.
Prime suspect is 1.6.0's new keyless default: with no LLM key the first remember() now downloads ~750 MB of GLiNER + fastembed (SDK-754's own commit message: "A first run that takes minutes looked hung"). Self-hosted 1.6.0 — pre-existing installs, warm caches — sits at 5.5%.
2026-09-20 is a partial day and is excluded from every rate comparison: fleet pipeline starts are 43,973 on 09-20 versus 235,649 on 09-19 (18.7%), consistent with an extract that ran at ~05:37 UTC. 09-20 figures appear only where noted as directional.
No interpreter is available in this runner (python3, awk, sort with arguments are all refused by the sandbox), so every aggregate below is a hand-summed set of rows from the CSVs. The load-bearing sums (fleet 09-19 started/completed/errored) were computed twice, by different groupings, and cross-check against the per-version splits in daily_event_volumes.csv exactly (see Finding 1).
Silent-gap ratio = (started − completed − errored) / started, the metric named in the brief. For pipelines it is computed from pipeline_outcomes_daily.csv and cross-checked against daily_event_volumes.csv, which additionally splits by self_hosted.
A note on what "started" counts.run_tasks_with_telemetry is invoked per data item, not per logical run (run_tasks_data_item.py:213 and :313), so these are per-item counts. PR fix(pipelines): log pipeline run start/complete once per run, not per data item #3922 proposed changing that and was closed unmerged (2026-07-05), so the convention is stable across every version in the window and version-to-version ratios are comparable.
Finding 1 — v1.6.0's GA day: two thirds of pipeline runs emit no terminal event (severity: high)
Computed
pipeline_outcomes_daily.csv, every 1.6.0 row in the window:
day
started
completed
errored
silent gap
gap %
population
09-03
5
5
0
0
0%
self-hosted only
09-04
213
213
0
0
0%
self-hosted only
09-18
216
208
4
4
1.9%
self-hosted only
09-19
12,014
2,444
1,482
8,088
67.3%
GA
09-20 (partial)
2,507
952
274
1,281
51.1%
GA
Splitting 09-19 by self_hosted in daily_event_volumes.csv (the three components sum to the table above exactly: 11,373+641 = 12,014; 1,858+586 = 2,444; 1,462+20 = 1,482):
1.6.0, 09-19
started
completed
errored
gap %
identities
self_hosted=false
11,373
1,858
1,462
70.8%
71
self_hosted=true
641
586
20
5.5%
19–21
Same-day controls. Other versions on 09-19, non-self-hosted — same date, same deployment class, different code:
version
started
completed
errored
gap %
1.6.0
11,373
1,858
1,462
70.8%
1.5.4
23,659
19,998
1,283
10.1%
1.5.3
18,418
8,125
8,149
11.6%
1.4.2
23,750
22,255
585
3.8%
Launch-day controls. Every 1.x GA launch in the window, at the same point in its life:
release
day 1
gap %
day 2
gap %
1.5.0
08-15: 162 / 156 / 0
3.7%
08-16: 14,415 / 13,526 / 262
4.3%
1.5.3
08-23: 4,612 / 4,510 / 16
1.9%
08-24: 15,393 / 14,119 / 535
4.8%
1.5.4
09-04: 881 / 743 / 27
12.6%
09-05: 15,402 / 11,938 / 948
16.3%
1.6.0
09-19: 12,014 / 2,444 / 1,482
67.3%
09-20 (partial): 2,507 / 952 / 274
51.1%
Against the threshold in the brief. Fleet 09-19: 235,649 started / 158,130 completed / 40,377 errored → gap 37,142 = 15.76%, error rate 17.13%. Across the 20 versions with >500 started on 09-19, the median gap ratio is 11.4%; 1.6.0 at 67.3% is 5.9× the median, far past the 1.5× bar. 1.6.0 carries 21.8% of the fleet's entire silent gap (8,088 of 37,142) on 5.1% of its starts (12,014 of 235,649). Its error rate, 12.3%, is unremarkable — below the fleet's 17.1%. The problem is specifically runs that end saying nothing.
The alternative hypothesis, tested and rejected. A 1.6.0 change that emitted moreStarted events per operation would produce the same ratio without anything being wrong. It doesn't hold — normalising by SDK entry point on 09-19, non-self-hosted:
version
cognee.remember
starts / remember
completions / remember
1.6.0
348
32.7
5.3
1.5.4
1,382
17.1
14.5
1.5.3
529
34.8
15.4
1.4.2
753
31.5
29.6
1.6.0's starts-per-remember sits inside the normal range; its completions-per-remember is a third of its peers'. Starts are not inflated — terminal events are missing.
Day-boundary carryover, bounded. Runs begun late on 09-19 would complete on 09-20. Even attributing all of 09-20's 1.6.0 completions (952) to 09-19 closes only 11.8% of the 8,088 gap.
Hypothesis
Two things have to be true: a mechanism that turns an abandoned run into silence, and something in 1.6.0 that makes abandonment common.
The mechanism is in the code and is version-independent.run_tasks_with_telemetry.py sends Pipeline Run Started at line 25, Completed at line 40 only after the generator is fully drained, and Errored at line 55 from an except Exception: at line 50. GeneratorExit, asyncio.CancelledError and KeyboardInterrupt are all BaseException, not Exception — every one of them produces a Started with no terminal event. The same class of bug was already fixed one layer up: run_tasks.py:292 catches (Exception, asyncio.CancelledError) with a comment explaining that a bare except Exception misses cancellation (CLO-365). That fix was never applied to the telemetry wrapper. A second amplifier sits at run_tasks.py:210: asyncio.gather(...) is called withoutreturn_exceptions=True, so one item's failure abandons its in-flight siblings — each of which has already emitted Started. That the very next block (run_tasks.py:220-235) tests isinstance(result, BaseException), which is unreachable without return_exceptions=True, suggests the flag was intended and dropped.
The 1.6.0-specific trigger is most likely the new keyless default. 1.6.0 is the first release where a user with no LLM key gets local models instead of an error (54db3c102 "Default to GLiNER + fastembed without LLM key", b98eec29e "Make fastembed a core dependency", both 09-16). SDK-754's own commit message (9947be39e, 09-18) describes the consequence: "with no LLM key the first remember() downloads the GLiNER demo model (about 750 MB) and the fastembed embedder through the hub, and nothing in cognee said so… A first run that takes minutes looked hung." A day-1 cohort of 71 new public deployments running the quickstart — which 663a2dc15 (09-19) put at the top of the README — hits a multi-minute silent download inside its first pipeline run. A user who Ctrl-Cs there produces precisely this signature. It also explains the split: self-hosted 1.6.0 deployments are pre-existing installs with configured keys and warm caches, and they sit at 5.5%.
This is a hypothesis, not a conclusion, and the aggregates cannot close it: provider_stack_daily.csv records only completed runs, so runs abandoned during a first-use download are invisible there by construction. Two weaker candidates were considered and are less likely: 9da9c130b (per-dataset embedding-model check, SDK-756) would raise and be counted as errored, not vanish; and the 1.6.0 sdist that shipped without Ladybug binaries (4294605f2, fixed 09-19 00:44) explicitly "preserve[d] the existing wheel packaging behavior", and nearly all installs take the py3-none-any wheel.
Proposed fix
Close the mechanism — cognee/modules/pipelines/operations/run_tasks_with_telemetry.py:50: widen to except (Exception, asyncio.CancelledError) and add a finally/GeneratorExit path so an abandoned generator still emits a terminal event (a distinct Pipeline Run Abandoned is better than mislabelling it errored). Mirror the CLO-365 comment already at run_tasks.py:292.
Close the amplifier — cognee/modules/pipelines/operations/run_tasks.py:210: pass return_exceptions=True, which also makes the existing isinstance(result, BaseException) branch at line 221 reachable as written.
Confirming observable: after (1), 1.6.0's silent gap should collapse into a named terminal event. If the replacement events are dominated by cancellation on a first remember() against fastembed/gliner_demo, the keyless-download hypothesis is confirmed and the product fix is to make the download an explicit, resumable, pre-pipeline step rather than something that happens inside a pipeline run. If they are spread across configured LLM providers instead, the hypothesis is wrong and the cause is elsewhere in 1.6.0.
Finding 2 — Startup recovery closes the database row but emits no telemetry, so the gap is undiagnosable (severity: medium, observability)
Computed
cognee/modules/cognify/recovery.py — the file #5090 and #5104 rewrote — contains zero matches for send_telemetry or Pipeline Run. Within cognee/modules/pipelines/, send_telemetry appears in exactly two files: run_tasks_with_telemetry.py (lines 25, 40, 55) and run_tasks_base.py (lines 162, 233, 250, which emit Task-level events). log_pipeline_run_error.py, which 30aef3c8f modified for the recovery path, emits none.
The consequence is visible in the data. #5140 predicted, in its watching section, that #5090 would make 1.6.0's "measured error rates rise and silent-gap ratios fall … for mechanical reasons". The first release to ship that code measured the opposite:
1.6.0, 09-19
predicted
observed
error rate
elevated
12.3% — below the fleet's 17.1%
silent-gap ratio
reduced
67.3% — 4.3× the fleet's 15.8%
Hypothesis
No hypothesis needed for the cause; it is a direct code reading. The recovery path updates pipeline_runs in the relational database and never reaches the telemetry emitter. A run abandoned by process death is therefore correctly closed locally and remains permanently silent in telemetry. The two systems have diverged: operators see a clean pipeline_runs table, this report sees an unexplained third of the fleet's runs. That divergence is why Finding 1 cannot be diagnosed from the aggregates — there is no error_type, no exception class, nothing but an absence.
Proposed fix
Emit Pipeline Run Errored (or a new Pipeline Run Recovered) from the recovery path in cognee/modules/cognify/recovery.py when it closes an abandoned run, carrying the original run's cognee_version and the recovery reason — the version matters, since the recovering process may be a different build from the one that abandoned the run. If a new event name is used, add it to the extractor's event list at .github/scripts/telemetry_aggregate_extract.py:75-77, which currently tracks only the three Pipeline Run * events. Confirming observable: the fleet silent-gap ratio and the count of recovery events should move in opposite directions by roughly the same magnitude in the next extract.
Fleet-wide pipeline error step change (#5140, Finding 1). On 09-19 the fleet error rate was 17.13% (40,377 of 235,649), against #5140's W1 (Sep 12–18) 16.5% and W2 (Sep 5–11) 11.9%, both ex-1.2.2.dev0. That runaway is now negligible (09-19: 212 started, 1 errored), so 09-19's figure needs no such correction and is directly comparable. The step change persists at its elevated level. Tracked in #5140; not re-filed.
Watching (near-threshold, decaying, or single-deployment)
1.0.3's error spike is resolving.Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 flagged 09-18 as a one-day anomaly (45,514 started / 22,370 errored, 49.1%, against ~0.5% on 09-14–09-17). It has decayed: 09-19 47,625 / 7,359 = 15.5%, 09-20 (partial) 3,778 / 186 = 4.9%. Still above its own ~0.5% baseline but trending back. No action.
Two old versions also exceed the 1.5× gap bar on 09-19 and are worth a second look only if they persist: 1.4.0 11,623 started / 5,866 gap = 50.5% (driven by its self-hosted side, 9,106 / 5,350 = 58.8%) and 1.0.5 4,252 / 1,735 = 40.8%. Both are two-month-old builds predating every fix in Finding 1's area; neither is a new release, so neither is a regression candidate.
1.5.4rc1 reports more completions than starts: 09-19, 3,046 started / 3,605 completed / 0 errored. Same integrity class Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 Finding 3b reported for cognify and 1.5.0 search — started and completed are not emitted from the same scope. Only 2 identities; excluded from the median in Finding 1.
cognify still reports ~zero completions. Across the whole 70-day window sdk_exec_outcomes_daily.csv shows cognify completing 0 on most days (09-18: 685/0/784, 09-19: 901/0/723, 09-20: 158/0/279 — errored exceeding started on all three). Same root as Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 Finding 3b; noted here only because the absolute numbers grew ~30× in the last three days as 1.6.0 landed.
1.6.0's search path is elevated but not yet actionable: 09-19, 502 started / 388 completed = 22.7% gap, versus 1.5.4's 9.3%. 1.5.3 is comparable at 20.6%, and the volume is small. Re-check once 1.6.0 has a full week.
1.5.4 and 1.5.3 both fell by roughly half on 09-19 (1.5.4: 90,103 → 42,856, −52.4%; 1.5.3: 48,799 → 21,478, −56.0%). Because both moved together while 1.0.3 rose (45,514 → 47,625), this reads as a fleet-level effect plus migration onto 1.6.0 rather than anything version-specific. Not flagged.
Search-type mix is quiet. No type collapsed or exploded on 09-19. CHUNKS_LEXICAL, CHUNKS and SUMMARIES continue to dominate; 1.6.0's own search volume is negligible (GRAPH_COMPLETION 69, CHUNKS 58, RAG_COMPLETION 1). The undocumented SearchType.HYBRID / HYBRID_RERANK values on 1.0.3 that Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 noted are still present (09-19: 8 and 1,332) and still legacy.
No new or disappeared event types.Remember Entry API Endpoint Invoked was checked specifically because it appears prominently in 1.6.0's rows — it dates to 2026-07-12 and is not new.
Data window and privacy note
This analysis used only the pre-aggregated, anonymized CSVs in telemetry_aggregates/ (window 2026-07-12 → 2026-09-20, 70 days) together with this repository's own git history and public PR/issue metadata via gh. No warehouse or external data source was queried, and none was available to this runner. The CSVs contain no user identifiers, no query text and no dataset names; distinct_identities counts deployments only, and no attempt was made to obtain anything finer. Provider and model values containing identifier-shaped text arrive pre-grouped into a redacted bucket and were treated as a mixed set of private configurations, never as a specific provider. Cross-version identity comparisons are avoided: persistent_id exists only on builds from ~April 2026 onward, so identity counts on older-version rows skew high. Where identity counts appear above (1.6.0's 71 non-self-hosted deployments) they are used only to characterise one recent version against itself and against same-day peers, not to compare old builds with new ones.
Telemetry insights — 2026-09-20
Executive summary
Pipeline Run Completednor aPipeline Run Erroredevent — 4.3× the fleet's 15.8% and 5.9× the fleet median, on a version whosefirst_seenis inside the window.cognee.remember(1.5.3: 34.8, 1.4.2: 31.5) but only 5.3 completions (1.5.3: 15.4, 1.4.2: 29.6). Same work submitted, one third of the terminal events.remember()now downloads ~750 MB of GLiNER + fastembed (SDK-754's own commit message: "A first run that takes minutes looked hung"). Self-hosted 1.6.0 — pre-existing installs, warm caches — sits at 5.5%.cognee/modules/cognify/recovery.pycontains nosend_telemetrycall, so SDK-764 fix(pipelines): close abandoned pipeline runs as ERRORED at startup #5090/SDK-765 fix(pipelines): startup recovery keeps the documents an abandoned run completed #5104's startup recovery closes the DB row but emits no event. Telemetry silent gaps can never close by that route.Data window and method
telemetry_aggregates/*.csv(WINDOW.txt:window_days=70).python3,awk,sortwith arguments are all refused by the sandbox), so every aggregate below is a hand-summed set of rows from the CSVs. The load-bearing sums (fleet 09-19 started/completed/errored) were computed twice, by different groupings, and cross-check against the per-version splits indaily_event_volumes.csvexactly (see Finding 1).pipeline_outcomes_daily.csvand cross-checked againstdaily_event_volumes.csv, which additionally splits byself_hosted.run_tasks_with_telemetryis invoked per data item, not per logical run (run_tasks_data_item.py:213and:313), so these are per-item counts. PR fix(pipelines): log pipeline run start/complete once per run, not per data item #3922 proposed changing that and was closed unmerged (2026-07-05), so the convention is stable across every version in the window and version-to-version ratios are comparable.Finding 1 — v1.6.0's GA day: two thirds of pipeline runs emit no terminal event (severity: high)
Computed
pipeline_outcomes_daily.csv, every 1.6.0 row in the window:Splitting 09-19 by
self_hostedindaily_event_volumes.csv(the three components sum to the table above exactly: 11,373+641 = 12,014; 1,858+586 = 2,444; 1,462+20 = 1,482):self_hosted=falseself_hosted=trueSame-day controls. Other versions on 09-19, non-self-hosted — same date, same deployment class, different code:
Launch-day controls. Every 1.x GA launch in the window, at the same point in its life:
Against the threshold in the brief. Fleet 09-19: 235,649 started / 158,130 completed / 40,377 errored → gap 37,142 = 15.76%, error rate 17.13%. Across the 20 versions with >500 started on 09-19, the median gap ratio is 11.4%; 1.6.0 at 67.3% is 5.9× the median, far past the 1.5× bar. 1.6.0 carries 21.8% of the fleet's entire silent gap (8,088 of 37,142) on 5.1% of its starts (12,014 of 235,649). Its error rate, 12.3%, is unremarkable — below the fleet's 17.1%. The problem is specifically runs that end saying nothing.
The alternative hypothesis, tested and rejected. A 1.6.0 change that emitted more
Startedevents per operation would produce the same ratio without anything being wrong. It doesn't hold — normalising by SDK entry point on 09-19, non-self-hosted:cognee.remember1.6.0's starts-per-remember sits inside the normal range; its completions-per-remember is a third of its peers'. Starts are not inflated — terminal events are missing.
Day-boundary carryover, bounded. Runs begun late on 09-19 would complete on 09-20. Even attributing all of 09-20's 1.6.0 completions (952) to 09-19 closes only 11.8% of the 8,088 gap.
Hypothesis
Two things have to be true: a mechanism that turns an abandoned run into silence, and something in 1.6.0 that makes abandonment common.
The mechanism is in the code and is version-independent.
run_tasks_with_telemetry.pysendsPipeline Run Startedat line 25,Completedat line 40 only after the generator is fully drained, andErroredat line 55 from anexcept Exception:at line 50.GeneratorExit,asyncio.CancelledErrorandKeyboardInterruptare allBaseException, notException— every one of them produces aStartedwith no terminal event. The same class of bug was already fixed one layer up:run_tasks.py:292catches(Exception, asyncio.CancelledError)with a comment explaining that a bareexcept Exceptionmisses cancellation (CLO-365). That fix was never applied to the telemetry wrapper. A second amplifier sits atrun_tasks.py:210:asyncio.gather(...)is called withoutreturn_exceptions=True, so one item's failure abandons its in-flight siblings — each of which has already emittedStarted. That the very next block (run_tasks.py:220-235) testsisinstance(result, BaseException), which is unreachable withoutreturn_exceptions=True, suggests the flag was intended and dropped.The 1.6.0-specific trigger is most likely the new keyless default. 1.6.0 is the first release where a user with no LLM key gets local models instead of an error (
54db3c102"Default to GLiNER + fastembed without LLM key",b98eec29e"Make fastembed a core dependency", both 09-16). SDK-754's own commit message (9947be39e, 09-18) describes the consequence: "with no LLM key the firstremember()downloads the GLiNER demo model (about 750 MB) and the fastembed embedder through the hub, and nothing in cognee said so… A first run that takes minutes looked hung." A day-1 cohort of 71 new public deployments running the quickstart — which663a2dc15(09-19) put at the top of the README — hits a multi-minute silent download inside its first pipeline run. A user who Ctrl-Cs there produces precisely this signature. It also explains the split: self-hosted 1.6.0 deployments are pre-existing installs with configured keys and warm caches, and they sit at 5.5%.This is a hypothesis, not a conclusion, and the aggregates cannot close it:
provider_stack_daily.csvrecords only completed runs, so runs abandoned during a first-use download are invisible there by construction. Two weaker candidates were considered and are less likely:9da9c130b(per-dataset embedding-model check, SDK-756) would raise and be counted as errored, not vanish; and the 1.6.0 sdist that shipped without Ladybug binaries (4294605f2, fixed 09-19 00:44) explicitly "preserve[d] the existing wheel packaging behavior", and nearly all installs take thepy3-none-anywheel.Proposed fix
cognee/modules/pipelines/operations/run_tasks_with_telemetry.py:50: widen toexcept (Exception, asyncio.CancelledError)and add afinally/GeneratorExitpath so an abandoned generator still emits a terminal event (a distinctPipeline Run Abandonedis better than mislabelling it errored). Mirror the CLO-365 comment already atrun_tasks.py:292.cognee/modules/pipelines/operations/run_tasks.py:210: passreturn_exceptions=True, which also makes the existingisinstance(result, BaseException)branch at line 221 reachable as written.remember()againstfastembed/gliner_demo, the keyless-download hypothesis is confirmed and the product fix is to make the download an explicit, resumable, pre-pipeline step rather than something that happens inside a pipeline run. If they are spread across configured LLM providers instead, the hypothesis is wrong and the cause is elsewhere in 1.6.0.Duplicate check
gh issue list --label telemetry-insights --state all→ only Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 (2026-09-19, OPEN). Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140's subject is the fleet-wide error-rate step change; it explicitly listed 1.6.0 under "watching" as "Too small to judge — establish the adoption curve next run" (09-18 was 216 starts, self-hosted only). This is that next run, and the finding is a different metric (silent gap, not error rate) on data that did not exist yesterday. New.gh pr list --state all --search "abandoned pipeline runs errored"→ SDK-764 fix(pipelines): close abandoned pipeline runs as ERRORED at startup #5090 (merged 09-17) and SDK-765 fix(pipelines): startup recovery keeps the documents an abandoned run completed #5104 (merged 09-17) recover abandoned runs, and SDK-577 fix: Recover interrupted pipeline runs #4966 (open) proposes more. None of them touch telemetry emission — see Finding 2. Not addressed by a merged PR.gh pr list --state closed --search "pipeline run completed telemetry"→ fix(pipelines): log pipeline run start/complete once per run, not per data item #3922 (closed, unmerged) concerns per-item vs per-run logging, not lost terminal events. Not a duplicate.Finding 2 — Startup recovery closes the database row but emits no telemetry, so the gap is undiagnosable (severity: medium, observability)
Computed
cognee/modules/cognify/recovery.py— the file #5090 and #5104 rewrote — contains zero matches forsend_telemetryorPipeline Run. Withincognee/modules/pipelines/,send_telemetryappears in exactly two files:run_tasks_with_telemetry.py(lines 25, 40, 55) andrun_tasks_base.py(lines 162, 233, 250, which emit Task-level events).log_pipeline_run_error.py, which30aef3c8fmodified for the recovery path, emits none.The consequence is visible in the data. #5140 predicted, in its watching section, that #5090 would make 1.6.0's "measured error rates rise and silent-gap ratios fall … for mechanical reasons". The first release to ship that code measured the opposite:
Hypothesis
No hypothesis needed for the cause; it is a direct code reading. The recovery path updates
pipeline_runsin the relational database and never reaches the telemetry emitter. A run abandoned by process death is therefore correctly closed locally and remains permanently silent in telemetry. The two systems have diverged: operators see a cleanpipeline_runstable, this report sees an unexplained third of the fleet's runs. That divergence is why Finding 1 cannot be diagnosed from the aggregates — there is noerror_type, no exception class, nothing but an absence.Proposed fix
Emit
Pipeline Run Errored(or a newPipeline Run Recovered) from the recovery path incognee/modules/cognify/recovery.pywhen it closes an abandoned run, carrying the original run'scognee_versionand the recovery reason — the version matters, since the recovering process may be a different build from the one that abandoned the run. If a new event name is used, add it to the extractor's event list at.github/scripts/telemetry_aggregate_extract.py:75-77, which currently tracks only the threePipeline Run *events. Confirming observable: the fleet silent-gap ratio and the count of recovery events should move in opposite directions by roughly the same magnitude in the next extract.Duplicate check
ERRORED;add/cognifycarry no version;TELEMETRY_ORIGINunset). This is a fourth, in a different module, and Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 does not mention it — it predicted the opposite behaviour. New.Persisting, already tracked — not re-filed
Fleet-wide pipeline error step change (#5140, Finding 1). On 09-19 the fleet error rate was 17.13% (40,377 of 235,649), against #5140's W1 (Sep 12–18) 16.5% and W2 (Sep 5–11) 11.9%, both ex-
1.2.2.dev0. That runaway is now negligible (09-19: 212 started, 1 errored), so 09-19's figure needs no such correction and is directly comparable. The step change persists at its elevated level. Tracked in #5140; not re-filed.Watching (near-threshold, decaying, or single-deployment)
1.5.4rc1reports more completions than starts: 09-19, 3,046 started / 3,605 completed / 0 errored. Same integrity class Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 Finding 3b reported forcognifyand1.5.0search — started and completed are not emitted from the same scope. Only 2 identities; excluded from the median in Finding 1.cognifystill reports ~zero completions. Across the whole 70-day windowsdk_exec_outcomes_daily.csvshowscognifycompleting 0 on most days (09-18: 685/0/784, 09-19: 901/0/723, 09-20: 158/0/279 — errored exceeding started on all three). Same root as Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 Finding 3b; noted here only because the absolute numbers grew ~30× in the last three days as 1.6.0 landed.SearchType.HYBRID/HYBRID_RERANKvalues on 1.0.3 that Telemetry insights: 2026-09-19 — fleet-wide pipeline error step change around Sept 10 #5140 noted are still present (09-19: 8 and 1,332) and still legacy.Remember Entry API Endpoint Invokedwas checked specifically because it appears prominently in 1.6.0's rows — it dates to 2026-07-12 and is not new.Data window and privacy note
This analysis used only the pre-aggregated, anonymized CSVs in
telemetry_aggregates/(window 2026-07-12 → 2026-09-20, 70 days) together with this repository's own git history and public PR/issue metadata viagh. No warehouse or external data source was queried, and none was available to this runner. The CSVs contain no user identifiers, no query text and no dataset names;distinct_identitiescounts deployments only, and no attempt was made to obtain anything finer. Provider and model values containing identifier-shaped text arrive pre-grouped into aredactedbucket and were treated as a mixed set of private configurations, never as a specific provider. Cross-version identity comparisons are avoided:persistent_idexists only on builds from ~April 2026 onward, so identity counts on older-version rows skew high. Where identity counts appear above (1.6.0's 71 non-self-hosted deployments) they are used only to characterise one recent version against itself and against same-day peers, not to compare old builds with new ones.