Fault-tolerant system (česky systém odolný proti selhání nebo systém odolný proti chybám) je vlastnost, která umožňuje systému (často počítačovému), aby nadále pracoval správně i v případě selhání některé jeho součásti. Pokud se sníží kvalita služby, je pokles úměrný závažnosti selhání – naopak u naivně navrženého systému může i malé selhání způsobit úplné zhroucení. Odolnost proti chybám je velmi žádoucí u systémů s vysokou dostupností nebo zajišťujících životně kritické funkce.
Odolnost proti chybám není jen vlastností jednotlivých strojů, ale může také charakterizovat pravidla, podle kterých vzájemně interagují. Například Transmission Control Protocol je navržen tak, aby poskytoval spolehlivou obousměrnou komunikaci v síti s přepojováním paketů, a to i v přítomnosti síťových prvků, které jsou nedokonalé nebo přetížené. Protokol vyžaduje, aby koncové body komunikace počítaly se ztrátou, duplikací, přehozením a poškozením paketů; takové události nenaruší integritu dat, ale pouze poměrně sníží datovou propustnost.
Struktura dat může být navržena tak, aby umožňovala elegantní degradaci (graceful degradation). Například formát HTML je navržen s ohledem na dopřednou kompatibilitu: nově zaváděné HTML entity mohou prohlížeče, které jim nerozumějí, prostě ignorovat, aniž by se dokument stal nepoužitelným.
Obnova z chyb v systému tolerujícím výpadky může být charakterizována jako roll-forward nebo roll-back. Jakmile systém zjistí, že nastala chyba, roll-forward obnova analyzuje stav systému a opraví jej. Roll-back obnova navrátí stav systému zpět k některé z dřívějších korektních verzí, například použitím bodu obnovení. Roll-back obnova vyžaduje, aby operace mezi kontrolním bodem a zjištěným chybným stavem byly idempotentní. Některé systémy využívají obě metody obnovy, roll-forward i roll-back, pro různé chyby nebo různé části jedné chyby.
V rámci individuálního systému, odolnosti proti chybám může být dosaženo předvídáním mimořádných podmínek a tvořením systému schopným vypořádat se s nimi, a obecně, usilovat o samo-stabilizaci (self-stabilization), takže systém směřuje k bezchybovému stavu. Nicméně, jestliže jsou následky selhání systému katastrofální, nebo náklady na dostatečnou spolehlivost velmi vysoké, může být lepším řešením použít nějakou formu zdvojení. V každém případě, je-li důsledek selhání systému tak katastrofální, systém musí být schopen návrátit se zpět do bezpečného režimu. To je podobné jako roll-back obnova, ale může to být lidská akce, pokud jsou lidé přítomni ve smyčce.