Skip to content
Apple on-device AI
Languages: Swift · Python · Metal

The silent-failure index

Every ⚠️ callout in the series — 1831 of them, 1469 describing a concrete silent failure — in one place, sorted by the symptom you would observe.

The defining property of this stack is that most defects do not throw. Each entry below links to the guide section that documents the failure, its trigger, and the safe default. Entries are classified by what you see (or fail to see), not by which API is at fault, because the symptom is what you start from at 2 a.m.

Generated from the guides on 2026-10-09 by scripts/ tooling; regenerate after editing guides rather than editing this file by hand.

How to use this page

Start from the symptom column that matches what you observe. Within each section, entries run in part order — Foundation Models first (parts 1–6), Core AI (7–10), Metal (11), MLX (12–13), then bridges, shipping, adjacent capabilities and migration (14–17).

The symptoms

Symptom Entries What it means
Wrong output 179 Runs and returns output that is wrong — wrong numbers, garbled or wrong-language text, corrupted tensors.
Empty output / no-op 67 Runs and returns nothing where content is expected — nil, empty results, operations that quietly do nothing.
Truncation & limits 27 Input or output silently truncated or capped — context windows, response sizes, token budgets.
Ignored input 114 A parameter, flag, option, file or annotation is silently ignored, dropped, or overridden.
Stale state 41 Stale or cached data served; invalidation that did not happen (or happened unexpectedly).
Data & artifact loss 39 Silent loss or overwrite of data or build artifacts — purged assets, dead bookmarks, unrebuildable builds.
Compiles but unavailable 90 Builds fine, then fails or degrades at runtime for some users — OS floors, device eligibility, missing assets, entitlements.
Performance cliffs 156 Silent slowdowns — CPU/GPU fallback, ANE ineligibility, cache misses, respecialization, sync stalls.
Resource growth 40 Silent memory or disk growth, leaks, quota consumption.
Precision loss 18 Silent numeric precision or dtype changes — TF32, quantization side-effects, accumulation regimes.
Misleading signals 167 Errors, logs or metrics that name the wrong cause; swallowed errors; observation APIs that emit nothing.
Version drift 102 The same code or artifact behaves differently across OS/SDK/tool versions with no signal.
Docs vs reality 159 Documented behavior differs from what ships — samples that don't compile, wrong signatures, naming mismatches.
API footguns 270 API shapes that invite silent misuse — surprising defaults, order-dependence, overload traps.
General cautions 362 Warnings and considerations that are not themselves silent failures.

Wrong output

Runs and returns output that is wrong — wrong numbers, garbled or wrong-language text, corrupted tensors.

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 16

Part 17

Empty output / no-op

Runs and returns nothing where content is expected — nil, empty results, operations that quietly do nothing.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 10

Part 12

Part 13

Part 16

Part 17

Truncation & limits

Input or output silently truncated or capped — context windows, response sizes, token budgets.

Part 2

Part 3

Part 6

Part 7

Part 13

Part 16

Ignored input

A parameter, flag, option, file or annotation is silently ignored, dropped, or overridden.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 12

Part 13

Part 16

Part 17

Stale state

Stale or cached data served; invalidation that did not happen (or happened unexpectedly).

Part 2

Part 3

Part 4

Part 6

Part 7

Part 10

Part 12

Part 14

Part 16

Part 17

Data & artifact loss

Silent loss or overwrite of data or build artifacts — purged assets, dead bookmarks, unrebuildable builds.

Part 2

Part 3

Part 4

Part 7

Part 9

Part 10

Part 12

Part 13

Part 14

Part 15

Part 17

Compiles but unavailable

Builds fine, then fails or degrades at runtime for some users — OS floors, device eligibility, missing assets, entitlements.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 7

Part 8

Part 9

Part 10

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

Performance cliffs

Silent slowdowns — CPU/GPU fallback, ANE ineligibility, cache misses, respecialization, sync stalls.

Part 1

Part 3

Part 4

Part 5

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

Resource growth

Silent memory or disk growth, leaks, quota consumption.

Part 2

Part 4

Part 5

Part 7

Part 9

Part 10

Part 12

Part 13

Part 15

Part 17

Precision loss

Silent numeric precision or dtype changes — TF32, quantization side-effects, accumulation regimes.

Part 9

Part 12

Part 13

Part 17

Misleading signals

Errors, logs or metrics that name the wrong cause; swallowed errors; observation APIs that emit nothing.

Part 1

Part 2

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

Version drift

The same code or artifact behaves differently across OS/SDK/tool versions with no signal.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

Docs vs reality

Documented behavior differs from what ships — samples that don't compile, wrong signatures, naming mismatches.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

API footguns

API shapes that invite silent misuse — surprising defaults, order-dependence, overload traps.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17

General cautions

Warnings and considerations that are not themselves silent failures.

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8

Part 9

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

Part 16

Part 17


🔇 = the guide marks this as an explicit SILENT FAILURE callout.