npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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

Readme

n8n-nodes-vialos

npm downloads license

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

  1. Add VialOS Self-Heal to your workflow instead of HTTP Request
  2. Configure URL, method, and authentication
  3. Connect Success output to your next step
  4. 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 + repairLog

Unrecoverable 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:

  1. The node automatically requests a new access token using your refresh token
  2. Retries the original request with the new token
  3. Stores the repair pattern in Gene Map (google_oauth_refresh strategy)

Setup:

  1. Add the VialOS Self-Heal node to your workflow
  2. Toggle "Google OAuth Auto-Refresh" to ON
  3. Select your Google OAuth2 credential
  4. 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

Links