Frequently Asked Questions¶
Launch and data overview¶
What data is processed, and what stays local?¶
- Sent to Patcherly: Error messages, stack traces, file paths, and the small code excerpts around the error needed to analyze it — not your full codebase.
- Sent to AI providers: The same minimal error context, redacted where it's straightforward to do so (secrets in stack traces, etc.).
- Stays local: Your full codebase and backups (pre-apply file snapshots) stay on your environment.
Patcherly's app, API and database are EU-hosted (Frankfurt) by default. AI providers and a small number of supporting services may be outside the EEA — see https://patcherly.com/legal/subprocessors for the full list, and https://patcherly.com/legal for subprocessors, retention, and data flows.
How do billing and trials work?¶
Plans and limits are summarized in Plans; read Free trial for emails before expiry and what happens if you don’t subscribe after a trial. Current prices and plan features are always on the Pricing page. Billing runs through Stripe. Manage trials (where applicable), upgrades, downgrades, and payment details under Profile → Billing → Manage billing (Stripe portal) when you are the workspace owner (the primary account for the workspace).
What happens when something fails?¶
- Fix applied but site misbehaves: Use Rollback in the dashboard to restore from the backup on your server. Automatic rollback may be triggered when a basic health check fails after a fix.
- Analysis or provider error: You may see 402 (monthly limit) or 429 (provider rate limit). See Troubleshooting and the FAQ entries on 402/429.
General Questions¶
What is Patcherly?¶
Patcherly is an AI-powered automated program repair system that helps you fix errors in your applications automatically. It detects errors, analyzes them using AI, generates fixes, and applies them safely with backup and rollback capabilities.
How does Patcherly work?¶
- Install a connector in your application (Python, Node.js, PHP, or WordPress).
- Pair the connector with your website/app (target) using the OAuth 2.0 Device Authorization Grant flow (
patcherly loginfrom the connector CLI, or Pair connector in the WordPress plugin). - Errors are detected automatically by the connector.
- Click Analyze with AI on a pending error — or, with auto-analysis, Patcherly skips this step (see the auto-analysis Q&A below).
- AI analyses the error and generates a fix.
- You review and approve the fix — or, when conditions are right, auto-apply does this for you (see the auto-apply Q&A below).
- The fix is applied on your environment with a backup taken first.
- The system checks the result and rolls back if something is wrong.
What programming languages are supported?¶
Patcherly currently supports: - Python (via pip package) - Node.js (via npm package) - PHP (standalone script) - WordPress (plugin)
Is Patcherly secure?¶
Yes. The dashboard uses secure sign-in and session handling, fix payloads can be verified before they are applied, and workspace data is isolated between customers. Sensitive actions in the app may ask you to confirm your password.
For how we handle cookies, privacy, and related topics, see: - https://patcherly.com/legal/privacy-policy - https://patcherly.com/legal/cookie-policy
Account & Billing¶
What plans are available?¶
Patcherly offers Personal, Core, and Pro plans — each with different limits on websites/apps (targets), fix quotas, and feature access. See the Pricing page for current plans, features, and prices.
Can I stay logged in longer without re-entering my password?¶
Yes. The dashboard keeps your session active and refreshes it in the background while you work. If you are signed out (for example after a long period of inactivity), sign in again.
Can I upgrade or downgrade my plan?¶
Yes. Use Profile → Billing → Manage billing (Stripe portal) so Stripe updates your existing subscription (including proration). See Plans. Do not use the public checkout again if you already subscribe — use the portal.
What payment methods are accepted?¶
Payments are processed by Stripe (typically major credit and debit cards; available methods depend on your region). Add or update cards in the Stripe Customer Portal from Profile → Billing. Details: Plans, or Stripe Payments.
How do I view my invoices?¶
Invoices are available in your dashboard under Profile → Billing (Payment history). See Invoices for more information.
How do I change how numbers are displayed?¶
You can choose how numbers are displayed (dot or comma for decimals) in Profile → Preferences: use the "Numbers format (decimals)" option (e.g. Dot 1,234.56 or Comma 1.234,56). This affects Metrics, Usage, and other read-only number displays; Settings and numeric inputs always use a dot (.) for decimals.
Targets & Connectors¶
What is a target?¶
A "target" in Patcherly represents one of your websites or applications that you want to monitor and fix errors for. Each website/app (target) has: - A unique name and URL - A connector paired via OAuth 2.0 Device Authorization Grant (one OAuth access token per website/app, stored in ~/.patcherly/credentials.json on the target server) - Associated errors and fixes
See Adding Your First Target for details.
How many targets can I have?¶
The number of websites/apps (targets) you can have depends on your plan. See the Pricing page for current limits.
How do I install a connector?¶
Installation depends on your application type: - WordPress Connector - Node.js Connector - Python Connector - PHP Connector
How does my connector authenticate to Patcherly?¶
Connectors authenticate using the OAuth 2.0 Device Authorization Grant standard. When you run patcherly login on the target server (or click Pair connector in the WordPress plugin), the connector shows you a URL and a short user code. You open the URL in any browser, sign in to your Patcherly dashboard, select the website/app, and confirm the code. Patcherly then issues an access token tied to that website/app, plus a refresh token so the connector can stay paired without you logging in again. The connector stores both in ~/.patcherly/credentials.json on the target server and uses them on every request — you don't have to manage any of this yourself.
Can I revoke or re-pair a connector?¶
Yes. Prefer Auto-Reconnect on the Targets row when the connector shows Not apply-ready, Reconnecting…, or Re-auth required — that nudges a soft-held session or opens guided re-pair (device login for agents, WordPress plugin settings for WP).
To wipe the pairing deliberately: run patcherly logout on the target server (or Disconnect / Unpair in the WordPress plugin), or use the dashboard Unplug (Force Disconnect) control. Then run patcherly login (or Connect with Patcherly) again. Refresh tokens also rotate automatically as access tokens approach expiry.
How do I send a test error to verify my connector works?¶
Use Test Mode: in your Patcherly dashboard, open Targets, click the target, and flip the Test Mode toggle ON. That opens a 30-minute window during which the connector can send one or more synthetic events. Then either click Send Sample Error in the WordPress plugin's Diagnostics card, or run patcherly send-test from the host where you installed the Python / Node.js / PHP CLI. The event appears in Errors flagged as a sample — it won't affect your metrics or fire notifications. The window auto-closes after 30 minutes (or when you flip the toggle off), so test events can't keep flowing by accident.
Why can't I just always send test events from my connector?¶
The Test Mode window is a deliberate safety gate. Without it, an exposed connector credential, a curious script on your server, or a stray CI run could spray fake errors into your real feed and trigger notifications. With it, you stay in control of when synthetic traffic is allowed — and Patcherly stamps every event sent during the window as a sample so it never pollutes metrics. If you try to send a test event while Test Mode is off, the connector tells you exactly which dashboard URL flips it on; no event is sent.
Error Management¶
How are errors detected?¶
Errors are detected automatically by connectors: - Connectors monitor your application's error logs - When an error occurs, the connector captures context - Error is sent to Patcherly for analysis
See Understanding Errors for details.
How does AI analysis work?¶
Patcherly uses advanced AI to: - Examine error messages and stack traces - Understand code context - Generate appropriate fixes - Provide confidence scores (0-100%)
Can I choose a different AI provider or model?¶
Patcherly runs analysis using AI models enabled for your workspace. On plans that include Custom AI, you can choose provider and model and optionally use your own API keys in Profile → AI. See the Pricing page for which plans include this.
Do I need to start analysis on every error manually?¶
By default, yes — errors land in Pending status and wait for you to click Analyze with AI. However, with the auto-analysis feature (available on higher plans), you can enable automatic analysis per website/app (target) so errors are sent to AI immediately after detection. See Auto-Analysis for details and the Pricing page for plan availability.
Do I need to approve every fix?¶
Usually you review fixes in the dashboard before they apply. Patcherly applies a minimum confidence guardrail for your workspace (default 90%, maintained as part of the product—contact support if your organization needs it adjusted). Fixes above that bar can move forward without an extra low-confidence confirmation; fixes below it prompt you to confirm so nothing risky applies silently.
After analysis, you can reject a fix proposal, mark it manually fixed, or rely on dry-run websites/apps (targets) until you are ready. Hide Error & Ignore is only for pre-analysis noise or post-apply list cleanup — not for rows with a fix proposal. See Approving Fixes.
What is auto-analysis and how do I enable it?¶
Auto-analysis is when Patcherly skips the manual Analyze with AI click for you. New errors go straight to AI without you starting analysis on each one. It needs two things:
- A plan that includes auto-analysis (see the Pricing page).
- The Auto-Analysis toggle turned on for each website/app you want to cover.
Turn it on from Profile → AI tab → Auto-Analysis Preferences, or expand a target row on the Targets page. Errors you've previously chosen to ignore are still respected — they won't be auto-analysed. See Auto-Analysis.
What is auto-apply and how is it different from auto-analysis?¶
Auto-apply is when Patcherly skips the "Approve the Fix" step too — a fix is approved and applied without you clicking. It's its own paid feature with its own per-target toggle (separate from auto-analysis), and it kicks in when all four of these are true at once:
- Your plan includes the auto-apply feature and the Auto Apply toggle is on for the target.
- Auto-analysis is also on for the target (auto-apply chains in after an auto-analysed fix).
- The target is not in dry-run (otherwise the connector still runs the full automated pipeline but only previews the patch).
- The fix's confidence is at or above your workspace minimum (default 90%).
If any one of those isn't true, the fix waits for your manual approval — same as on every plan. Auto-analysis and auto-apply are now two independent toggles you control. See Auto-apply for the full picture.
What happens if a fix causes problems?¶
Patcherly includes automatic and manual rollback:
Automatic rollback (basic health check on every plan): - After every fix, a basic health check runs for your website/app (target) (all plans): the system checks that your site responds and is not returning 5xx or unreachable. - If the basic health check fails (e.g. PHP 500, site down), the fix is automatically rolled back on every plan—no special plan needed. - On higher plans with Agent Testing, additional checks (test execution, health score) can also trigger automatic rollback.
Manual rollback (all users, every plan): 1. Click Rollback on fixed/failed errors 2. Select reason: "Patch didn't fix", "Caused issues", "Personal decision", or "Other" 3. Optionally add comments 4. Confirm to restore from backup
In all cases: original code is restored from backup, you're notified, and your feedback (on manual rollback) is recorded as a per-workspace outcome on every plan. On Core and Pro plans, that recorded feedback then feeds future AI analysis so similar suggestions are not repeated (see Rollback — How Patcherly learns from outcomes). This is Patcherly product behavior; it is not the same as training third-party commercial AI models on your code.
See Rollback for details.
Why am I asked for a rollback reason?¶
When you manually rollback a patch, your reason helps Patcherly record the outcome for that fix: - "Patch didn't fix the issue": Marks this kind of fix as unsuccessful for this error context - "Patch caused new problems": Marks this approach as harmful in context - "Personal or operational decision": Neutral feedback, not related to patch quality - "Other": General fallback
That information is recorded inside Patcherly for your workspace on every plan, together with technical signals such as error signature and a coarse error fingerprint. On Core and Pro plans, the next AI analysis for a similar error picks up a few of those past outcomes and uses them as context so it can avoid proposing very similar patches again — the dashboard also surfaces a warning when a new suggestion looks too close to a past failed patch. We are not using your codebase to train foundation models for general-purpose AI; improvement here means recognizing what already failed for you, not vendor-side model training. See Rollback — How Patcherly learns from outcomes.
What are flagged targets?¶
Websites/apps (targets) are automatically flagged for review when: - Critical rollback failures: Rollback couldn’t restore files (system inconsistency) - Multiple consecutive failures: 3+ patch failures within 24 hours - Language and framework unknown: Neither language nor framework is set on the website/app (in Settings), and the connector couldn’t detect them automatically—so Patcherly highlights it until you specify them (they drive AI analysis quality)
Flagged websites/apps (targets) show a warning badge and reason in Targets. You can keep using the target; Patcherly Staff review the connector and clear the flag when checks pass. Only Patcherly operators can unflag a target from the dashboard.
When a website/app is flagged or unflagged, the audit record shows the actor as your account (for automated system events tied to your workspace) or as Patcherly support, not an email address. You can review every flag / unflag event on the Audit Logs page.
Can I apply fixes manually?¶
Yes, you can apply fixes manually: - Review the generated fix in the dashboard - Copy the fix code - Apply it manually to your codebase
See Manual Fixes for details.
Security & Privacy¶
Where are my backups stored?¶
Before a patch is applied, the connector saves copies of all existing paths in the patch (every file the diff would change) on your server (in your backup folder). Patcherly does not send nor store those file backups in the cloud or our servers. WordPress sites use wp-content/uploads/patcherly/backups/; other connectors use their configured backup root (often ../backups beside the web root). You keep them for version history until you delete them — on WordPress, enabling Cleanup on uninstall in the plugin settings deletes that folder when you remove the plugin. For related legal disclosures, see our Privacy Policy.
If detailed error history is pruned by my plan — or if I manually delete errors — do I lose my metrics too?¶
No. Your aggregated metrics (errors detected, fixes applied, rollbacks, time saved, money saved) and your AI usage history are kept indefinitely on a separate store and are not affected by audit retention or by manual delete. Only the raw, per-error audit trail older than your plan's Audit Data Retention window is pruned daily. Delete on the Errors page is for never-applied or noise rows only — it is blocked after a successful patch or any completed apply attempt; use Hide Error & Ignore for list cleanup instead. When delete is allowed, the row is hard-removed — but headline numbers and the cost / token history that fed them stay intact.
Loading the Errors or Audit page on a date range outside your plan window will appear empty, but the Metrics page numbers for the same period will still be correct. Plan downgrades get a 30-day grace before the new (shorter) window applies. Full details: Data retention on your workspace. For what the Audit page itself shows, how to filter, and how to export, see Audit Logs.
Is my code sent to Patcherly?¶
Only error information is sent to Patcherly: - Error messages and stack traces that your app/website already produces - File paths and line numbers - Context information (server OS, programming language of your app and similar technical info)
Your full codebase is not sent to Patcherly. We send only the information required for automated repairs. For details on data categories, retention, and subprocessors, see https://patcherly.com/legal.
How does Patcherly secure the fixes it sends to my connector?¶
Every fix payload Patcherly sends is cryptographically signed before it leaves the API, and your connector verifies the signature before applying anything. If a payload is tampered with in transit (corrupted, intercepted, rewritten by a proxy, etc.), the signature stops matching and the connector refuses the apply.
No setup is required — signing and verification are built into the OAuth pairing.
Troubleshooting¶
My connector isn't connecting¶
Common issues: 1. Check Targets chips: A row can look Healthy but still show Not apply-ready or Re-auth required. Use Auto-Reconnect first; only Force Disconnect / re-pair if guided reconnect fails. 2. Check OAuth credentials: Verify ~/.patcherly/credentials.json exists on the target. If it's missing or the access token has expired and refresh failed, re-pair with patcherly login (or Re-Connect Account then Connect with Patcherly in the WordPress plugin) 3. Check server URL: Ensure the API base URL points to the correct Patcherly instance (typically https://api.patcherly.com) 4. Check network: Verify outbound HTTPS connectivity to the Patcherly API 5. Check logs: Review connector logs for error messages
See Troubleshooting Guide for more help.
Fixes aren't being applied¶
A few things to check:
- Not apply-ready. Targets Healthy only means the connector was heard from recently. Apply needs a live OAuth session (
apply_ready). If Apply fails with a “not connected / Auto-Reconnect” message, open Targets and use Auto-Reconnect. - Dry-run is on for the target. Targets in dry-run preview the change but don't write files. Edit the target on the Targets page and turn off Dry-run when you're ready for fixes to apply.
- The fix's confidence is below your minimum. Patcherly pauses low-confidence fixes for your manual approval — open the error and confirm if you're happy with it.
- File permissions. Make sure the connector's process can write to your application files.
- Signature mismatch. If your connector was re-imaged, the OAuth credentials may be stale. Use Auto-Reconnect or run
patcherly login(WordPress: Re-Connect Account) to issue a fresh pairing. - Backup directory not writable. The connector takes a backup before applying — if the backup folder isn't writable, the apply is refused.
I'm getting rate limit errors¶
Rate limits depend on your plan. If you're hitting limits, consider upgrading — see the Pricing page for plan limits and upgrade options.
Analysis returns 402 (Payment Required) or 429 (Too Many Requests)¶
- 402: A plan usage limit for the current period has been reached (for example monthly analysis / fixes). On the dashboard Errors page you will also see an upgrade (or enable your own AI keys) banner with Analyze actions disabled. See Plan limits. Upgrade, switch to BYOK if your plan includes it, or wait until the period resets.
- 429: The upstream AI provider returned a rate limit or quota error. If you use your own API key for AI, check your usage and limits in that provider's dashboard and retry later. If you're on Patcherly's managed AI, contact support.
Security and prompt injection¶
See the Security overview for the full map of protections. Common questions:
Why was my connector paused?¶
When several suspicious errors come from the same target in a short time, Patcherly enters protection mode for that target. The connector stops detecting errors and applying patches until the timer expires or a team member releases the target. See Protection mode and Prompt injection protection.
What does "Quarantined" mean on an error?¶
The error log may have contained text designed to manipulate the AI. Patcherly blocked auto-apply and connector apply for that error. Patcherly Staff are notified to review it; you can fix a real bug manually on your server while waiting. See Quarantined patches. This is not the same as protection mode, which pauses the whole target.
Can I disable this protection?¶
Platform safety rails (quarantine, protection mode thresholds) cannot be turned off from the dashboard. Patcherly Staff review quarantined errors; open Support from the bottom of the dashboard sidebar if you see a recurring false positive. You can release protection mode yourself from the target page when your whole site was paused.
What happens to errors that arrive while protection mode is active?¶
They are not detected — the connector is in standby. Normal monitoring resumes after auto-release or manual release. Errors on your server still occur; Patcherly simply does not collect them during the pause.
Support¶
How do I get help?¶
- Help Center: Start from the Help Center home
- Troubleshooting: Check the Troubleshooting Guide
- Dashboard Support menu: Open Support from the bottom of the dashboard sidebar (main menu). This is where you find the help options available on your plan:
- All plans — Community Discord for peer help and general questions
- Pro (priority support) — signed-in ticketing portal and direct email, when included in your plan
Where can I report bugs?¶
Use Support in the dashboard sidebar. Include error messages, logs, and steps to reproduce. Pro workspaces can use priority ticketing or direct email from the same menu.
Can I request features?¶
Yes — share feature ideas through Support in the dashboard sidebar (Discord on all plans; Pro may use priority ticketing or direct email).