Safe Degradation: When Things Go Wrong
UPAS is designed to fail gracefully. Here's how it handles missing resources.
2 mins read
The Reality of Field Conditions
In humanitarian operations, things go wrong:
- Devices run out of storage
- Models fail to load
- Browsers lack WebGPU support
- Cache becomes corrupted
UPAS is designed to handle these gracefully.
Degradation Hierarchy
UPAS follows a clear degradation path:
Level 1: Full Capability
- WebGPU runtime active
- AI model loaded
- Procedure packs cached
- Full query functionality
Level 2: Fallback Runtime
- WASM runtime active
- Smaller model loaded
- Procedure packs cached
- Slower but functional queries
Level 3: Manual Mode
- No AI model available
- Procedure packs cached
- Manual browsing and search
- Clear notice displayed
Level 4: Minimal Mode
- Cache partially available
- Limited content accessible
- Sync recommended
- Functionality clearly indicated
User Communication
At every level, UPAS communicates clearly:
function showDegradedNotice(level: DegradationLevel) {
switch (level) {
case 'wasm':
notify('Using CPU inference. Responses may be slower.');
break;
case 'manual':
notify('AI unavailable. Browse procedures manually.');
break;
case 'minimal':
notify('Limited content cached. Connect to sync.');
break;
}
}Never Block
UPAS never blocks the user:
- Show what's available
- Indicate limitations
- Suggest remediation
- Allow continued work
Recovery Paths
Each degradation level has a recovery path:
| Level | Recovery |
|---|---|
| WASM | Upgrade browser for WebGPU |
| Manual | Clear cache, reload model |
| Minimal | Connect to network, sync |
Design Philosophy
Degradation is a feature, not a failure:
- Anticipate problems: Things will break
- Preserve function: Some capability is better than none
- Communicate clearly: Users understand the situation
- Enable recovery: Path back to full capability
Learn More
Wrap-up
Operational guidance shouldn't require constant connectivity. UPAS aims to work seamlessly — whether you're in a well-connected office or a remote field location.
If that sounds like the kind of tooling you want to explore — register your pilot interest or join the discussion on GitHub.
UPAS is fully open source under the MIT licence. Deploy on your infrastructure — your data, your control.