n8n-nodes-vialos
v0.1.8
Published
Self-healing HTTP/API node for n8n — auto-repairs failed requests using VialOS PCEC engine and Gene Map pattern learning
Maintainers
Readme
n8n-nodes-vialos
Self-healing HTTP/API node for n8n — knows the difference between a rate limit, an expired token, a schema change, and a server hiccup. Applies the right fix for each, routes failures to a second output, and learns from every repair across workflow runs.
Why not just use "Retry on Fail"?
n8n's built-in retry retries everything the same way. That works for transient errors, but creates problems for others:
| Error | Built-in Retry | VialOS Self-Heal |
|-------|---------------|-----------------|
| 429 Rate limit | Instant retry → gets you banned longer | Exponential backoff (2s → 3s → 4.5s) |
| Google Sheets quota | Keeps retrying → quota never resets | Waits 10s+ before retry |
| 401 OAuth expired | Retries forever, always fails | Flags for re-auth, routes to second output |
| Google invalid_grant | Retries forever, always fails | Explains the 7-day Testing mode issue |
| 403 token expired | n8n never auto-refreshes these | Flags with GitHub issue #18517 context |
| 500 Server error | Same fixed delay every time | Exponential backoff, up to max |
| 400 Schema drift | Retries broken payload | Logs and skips — retry won't help |
Installation
Settings → Community Nodes → Install → n8n-nodes-vialos
Self-hosted n8n only. Not available on n8n Cloud (community node restriction).
Usage
- Add VialOS Self-Heal to your workflow instead of HTTP Request
- Configure URL, method, and authentication
- Connect Success output to your next step
- Connect Repaired / Failed output to handle errors gracefully (Slack alert, error log, or just ignore)
Two outputs
VialOS Self-Heal
├── Success → response data + _vialos metadata
└── Repaired / Failed → error details + suggestion + repairLogUnrecoverable errors (auth expiry, schema drift, not found) go to the second output with a specific explanation and fix instructions — not a generic error.
Gene Map — learns across runs
Every repair is stored in n8n's workflow static data and reused on the next run. Error patterns are pre-loaded from real n8n community pain points so you get intelligent handling from day one.
"_vialos": {
"attempts": 3,
"repaired": false,
"errorCode": "rate_limit_google_sheets",
"geneMapSize": 12,
"starterGenes": 11,
"userGenes": 1,
"suggestion": "Google Sheets quota: 300 reads/min per project..."
}userGenes grows as your workflows run — that's the Gene Map learning.
Error patterns handled
| Code | Trigger | Strategy | Wait |
|------|---------|----------|------|
| rate_limit | HTTP 429, "too many requests" | Exponential backoff | 2s base |
| rate_limit_google_sheets | sheets.googleapis.com quota | Exponential backoff | 10s base |
| rate_limit_llm | OpenAI / Gemini / Anthropic 429 | Exponential backoff | 5s base |
| auth_expired | HTTP 401, "unauthorized" | Flag for re-auth | — |
| auth_expired_google | invalid_grant, Google 401 | Flag + explain Testing mode | — |
| auth_expired_403 | 403 + "token expired" message | Flag (GitHub issue #18517) | — |
| forbidden | HTTP 403, "access denied" | Flag permissions | — |
| schema_drift | HTTP 400, "bad request" | Log and skip | — |
| not_found | HTTP 404 | Log and skip | — |
| server_error | HTTP 5xx | Retry with backoff | 3s base |
| timeout | Network timeout, ECONNRESET | Retry with backoff | 2s base |
| connection_refused | ECONNREFUSED | Retry with backoff | 5s base |
| quota_exceeded | "quota exceeded" message | Exponential backoff | 10s base |
Configuration
| Setting | Default | Description | |---------|---------|-------------| | Max Repair Attempts | 3 | Times to retry before routing to second output | | Base Backoff (ms) | 2000 | Starting wait for exponential backoff | | Max Backoff (ms) | 30000 | Maximum wait between retries | | Learn Patterns | true | Store repairs in Gene Map across runs | | Route Failures to Second Output | true | Send failures to output 2 instead of throwing |
Authentication supported
- None
- Bearer Token
- API Key (header)
- Basic Auth
Google OAuth Auto-Refresh
When wrapping Google API calls (Sheets, Gmail, Drive, Calendar), enable Google OAuth Auto-Refresh in the node settings and connect your Google OAuth2 credential.
When a 401 is detected from a Google API:
- The node automatically requests a new access token using your refresh token
- Retries the original request with the new token
- Stores the repair pattern in Gene Map (
google_oauth_refreshstrategy)
Setup:
- Add the VialOS Self-Heal node to your workflow
- Toggle "Google OAuth Auto-Refresh" to ON
- Select your Google OAuth2 credential
- Done — token refresh happens automatically from now on
Starter Gene Map
Pre-loaded with 11 patterns from real n8n community reports (2021–2026):
- Google Sheets quota — 8+ community threads, 2022–2026
- Google
invalid_grant— "#1 most reported token issue 2025-26" - OAuth 403 vs 401 mismatch — GitHub issue #18517 (Aug 2025)
- LLM rate limits — OpenAI burst (Feb 2026), Gemini quota (Mar 2026)
- Plus: server_error, timeout, connection_refused, forbidden, schema_drift
All counts start at 0 — real data accumulates from your actual workflows.
VialOS ecosystem
- @vial-agent/runtime — core runtime
- @helix-agent/core — payment reliability
- n8n-nodes-vialos — this package
