An AI assistant can fix a crash-looping server, and for one class of crash it is genuinely quicker than you: the server dies on start because a config file is malformed, a key is misspelt, a value is out of range or a file is missing, and the reason is printed in the last thirty lines of console output. For that, the loop is short. The assistant reads the console tail, opens the file the error names, makes the smallest edit that fixes it, restarts once, and reads the console again to confirm the server got past the point where it died. Everything else - out-of-memory kills, corrupted saves, a mod update that broke compatibility, anything involving credentials or startup parameters - needs a human to decide, and the assistant should be told so before it starts.
This post walks through that loop on a real-shaped example, says what the assistant needs access to at each step, and lists the guardrails: the ones built into the RE:NODE panel and the ones you should add in your prompt. Most of it applies to any host and any assistant. If you want the broader view of where coding agents help and where they hurt, read AI coding agents for server work first; this is the narrow, practical version for one bad afternoon.
What a crash loop looks like and which ones an AI can fix#
A crash loop is a server that starts, fails, gets restarted, and fails again in the same place. On a panel built on Pterodactyl, the console shows the start, a stack trace or an error line, the container exiting, and then the start again. If you have not read a console under pressure before, reading the console is worth five minutes, and crash loop diagnosis covers the general method without any AI in it.
The crashes split cleanly into two groups. The first group has a single, local cause that the console names and a single file fixes:
- A JSON, YAML, TOML or INI file with a syntax error - a trailing comma, a tab in YAML, an unclosed quote.
- A config key with a wrong value type: a string where a number was expected,
truewritten asyesin a format that does not accept it. - A path in a config that points at a file that does not exist.
- A plugin or mod config regenerated by an update with a key the old config no longer matches.
- An app whose entry file, start script or required environment key is missing.
The second group has a cause that is not in any one file, or a fix that is not a file edit:
- The process is killed at the memory limit. On RE:NODE the kernel stops the container and it restarts clean instead of swapping, so an out-of-memory loop looks like a crash with no stack trace.
- A save or world file is corrupted.
- A game update and a mod or plugin version no longer agree.
- The server needs a credential it does not have - a Steam game-server token, a licence key, a database password.
- The startup command, Java memory flags or Docker image are wrong.
The first group is where an assistant earns its keep. The second group is where it should report what it found and stop. The rest of this post assumes the first group, and comes back to the second at the end.
Before you connect anything#
Three things take two minutes and save the afternoon.
- Stop the loop. A server that keeps restarting keeps rewriting its logs and, on some games, keeps touching its save. Press stop on the Console tab. It also matters on RE:NODE for a second reason: a watcher polls every two minutes for uptime that went backwards or a server that went offline. Three restarts in an hour put a warning on the server page and open a ticket automatically; six suspend the server. Restarts you asked for are not counted, but crash restarts are.
- Take a backup. Make one on the Backups tab before anything edits a file. The assistant cannot make or restore one - no AI link reaches backups - so this step is yours. A backup nobody has restored is a hypothesis, but a backup made five minutes before an edit is the cheapest undo you will get. The backups guide covers the tab; backups that actually restore covers the habit.
- Write down what changed. Crash loops rarely appear from nothing. Was there an update, a new mod, a config edit last night, a plan change? One sentence about it in your first message to the assistant is worth more than any amount of log.
Step 1: diagnose without giving it access#
You do not have to hand an assistant anything to get a diagnosis. On the Console tab of every server, above the terminal, is a bar called Work on this server with AI. Its dropdown, "What the assistant is for", has an option called Server won't start. Picking it does not make a link. It copies a ready-to-paste prompt that already contains the latest console output, which you paste into Claude, ChatGPT or whichever assistant you use.
That is the right first move for most crashes, because it gives the assistant everything the console says and nothing else. It cannot open files, cannot restart, cannot type commands. It can only read what you pasted and tell you what it thinks. Passwords and tokens are withheld from the copied text: everything leaving the panel passes a redactor that strips values by variable name (anything like TOKEN, PASSWORD, KEY, SECRET), by shape (API keys, JWTs, passwords inside URLs, long random strings), and by value (the server's own secrets are scrubbed from the finished text). Treat it as a net rather than a promise, and glance at what you paste.
On another host, the same thing works by hand: copy the last 50 to 100 lines of console output, remove anything that looks like a key, and paste it with one line about what changed.
A good diagnosis answer names the file, the line or key, and the reason. A bad one lists six possible causes and suggests reinstalling. If you get the second kind, the console tail probably does not contain the real error - scroll further up for the first error, not the last one, because the last one is often a consequence.
Step 2: give it hands, if you want it to act#
If the diagnosis is right and the fix is a one-line edit, you can make it yourself in the file manager. Often that is the honest answer. Letting the assistant act is worth it when the fix needs reading several files, or when you want it to restart and check the result while you do something else.
There are two ways to give an assistant access on RE:NODE.
A control share link. In the same bar, pick Manage this server (start/stop, console, files) and press Connect AI. The panel makes a private link, copies it, and shows it once. Paste it into the assistant. It also comes with an MCP address, so an assistant that supports remote MCP servers - Claude Code, or Claude.ai as a custom connector - gets proper tools rather than a URL to fetch. The link stops working after 24 hours unused and 30 days after creation whatever happens, and making a new one for the same purpose replaces the old one.
An OAuth connection. Add the panel's MCP endpoint to your assistant and sign in once in the browser:
$ claude mcp add --transport http renode https://panel.renode.space/api/client/mcpThe consent page asks which servers (all of yours, or a pick) and which level: Files (read and edit files, use the console) or Manage (that, plus start, stop and restart). For a crash loop you want Manage if the assistant should restart and verify on its own, and Files if you would rather press the button yourself. Either way it never reaches databases, backups, schedules, users, startup settings or account settings.
Here is what each kind of access can do, so you pick the smallest one that does the job:
| Action | Read link | Control link |
|---|---|---|
| Server context, console tail | Yes | Yes |
| Directory listings | Yes | Yes |
| Read file contents | No | Yes, secrets redacted |
| Edit files | No | Yes, text up to 1 MB |
| Start, stop, restart, kill | No | Yes |
| Type console commands | No | Yes |
| Delete, rename, reinstall | No | No |
| Startup, databases, backups | No | No |
A link acts as the person who made it, with that person's permissions on that server at that moment. A subuser who cannot restart the server cannot restart it through a link either, and losing access to the server kills the link immediately. For more on why the smallest grant is the right one, see subusers and least privilege.
A worked example: a Node app that dies on its config#
The example is deliberately ordinary, because ordinary is what you will meet. A small Node.js app on an app hosting server reads its settings from config.json at start-up. Someone edited the file in the file manager last night to add a new feature flag. Since then the server starts, prints one line, and exits. The console tail looks like this (the exact wording of the error differs between Node versions):
container@pterodactyl~ Server marked as starting...> app@1.4.0 start> node index.js/home/container/config.json: Expected double-quoted property name in JSONat position 211 (line 10 column 3) at Module._extensions..json (node:internal/modules/cjs/loader) ...container@pterodactyl~ Server marked as offline...Reading the console
With a control link connected, the instruction you give is short and bounded:
This server crash-loops since last night's edit to config.json.Read the console tail and the file the error names. Tell me the causeand the smallest edit that fixes it. Do not change anything yet.The assistant calls its console tool (the link returns at most the last 100 lines), sees that config.json is named, and reads it. The file tool returns the first 256 KB of a text file with secrets replaced by [redacted]. Line 10 is the problem:
"features": { "newCheckout": true, "betaSearch": false, }, "logLevel": "info"The trailing comma after "betaSearch": false is legal in JavaScript and illegal in JSON, which is exactly the kind of thing that passes a quick look by a human and fails JSON.parse every time. Position 211, line 10, column 3 is the closing brace the parser hit while still expecting another property name. A good assistant says that in two sentences and proposes deleting one comma.
Making the edit
Now you let it act: "Make that edit, nothing else." This is the step where one detail matters more than any other. The copy of the file the assistant read has every secret replaced by [redacted]. If the assistant writes the whole file back from that copy, any password, token or key in the file is overwritten with the literal text [redacted]. The server then starts and fails somewhere else, usually at the first connection to a database or an API.
So the rule for any file that holds a secret is one of these:
- The edit is made only to a file the assistant has confirmed contains no
[redacted]marker. - Secrets live in
.env, and changes there go through theset_envtool, which sets or removes named keys on the panel side, keeps every other byte, and returns key names only. Whole-file writes to.envare exactly what it exists to avoid. - You make the edit yourself in the file manager and the assistant only verifies.
In this example config.json holds no secrets, so the assistant writes the corrected file and says what it changed. Ask it to show you a diff of what it intends to write before it writes; a one-character change should look like a one-character change.
Restarting once
The assistant then starts the server and waits. One start, not a retry loop. If it fails again, the right move is to read the console again and report, not to try three more edits in a row. Each failed start you trigger on purpose is not a crash restart, but an assistant that edits and restarts in a tight loop is changing several things at once, and then nobody knows which edit did what.
Verifying the fix, not just the restart#
"The server started" is not the same as "the server works". A config fix is verified when three things are true.
- The console got past the old failure point. The line that killed the process is gone, and the console shows whatever comes after it - for an app, the line saying it is listening on the server's port; for a game, the map or world loading and the server reporting itself ready.
- It stays up. Ask the assistant to read resource usage and the console again after a few minutes. A process that starts and dies thirty seconds later on the first request, the first player join or the first save has a second problem the first fix only exposed.
- The feature works. Open the site, join the game, run the bot command. The assistant cannot do this for you through the panel, and it should say so rather than declare victory from the console.
A useful closing instruction: "Read the console tail and resource usage now. If the server is running and the error is gone, summarise what you changed in one paragraph, including the file and line. If not, stop and tell me what you see." That paragraph is what you paste into your own notes, and what you check against the activity log.
Crashes an assistant should hand back to you#
These are the cases where the right output from the assistant is a diagnosis and a recommendation, and the action is yours.
Out of memory
If the console ends without an error and the memory graph on the Console tab was at the limit when the process died, the container was stopped at its memory ceiling. There is nothing to edit in a config file that fixes this honestly. The options are a smaller world or fewer plugins, a lower heap or cache setting, or a bigger plan - and each of those is a decision about your server, not a typo. Why your game server keeps restarting and Node memory limits explained cover how to tell.
Startup parameters and credentials
Java heap flags, the start command, the Docker image, Steam tokens and licence keys live on the Startup tab or in variables. No AI link can change startup or variables, by design. If the diagnosis is "the -Xmx value is larger than the plan's memory" or "the game-server token expired", the assistant tells you, and you change it.
Corrupted saves and worlds
A crash that points at a save, region or world file is a restore decision. Rolling back means losing progress, and only you know whether last night's backup or this morning's is worth the trade. The assistant can tell you which file the error names; restoring it goes through the Backups tab.
Mod and plugin version conflicts
A loader error about a mod requiring a different version of the game or another mod is fixed by changing which files are installed, which usually means deleting or replacing jars and DLLs. Links cannot delete or rename files, and you would not want an assistant guessing which version of a mod to download anyway. See what to do when a mod update breaks.
When the server is suspended
If the loop went on long enough to suspend the server, every AI link to it returns a plain 404 until it is restored. The support chat in the server header still works while a server is suspended - it is the one thing a suspended server still answers - so that is where to go.
Guardrails that are built in#
The panel's side of the safety model is short and worth knowing, because it tells you what the prompt does not have to cover.
- What is never reachable: delete, rename, reinstall, startup or variable changes, databases and their passwords, backups, schedules, users, SFTP details and API keys. Not through a read link, a control link or OAuth.
- Write limits: file writes are text, at most 1 MB, and never anywhere under
.git/. - Rate limits per link: 60 requests a minute, 20 actions and 6 power actions a minute. An assistant cannot restart your server in a tight loop even if it tries.
- Redaction: passwords and tokens are withheld from everything the assistant reads, and database passwords are never in the output.
- Expiry and rotation: a control link lapses after 24 hours unused and 30 days in total; at most two control links exist per server. OAuth access tokens last an hour, and the refresh token lapses after 30 days without use.
- One place to cut it off: Account, then Connected AI, lists every OAuth connection with a Disconnect button and every active share link you made, on any server, with Revoke.
None of these stop an assistant from making a bad edit to a file it is allowed to edit. That part is on the prompt and on you.
Guardrails you add in the prompt#
Assistants follow explicit rules well and implied ones badly. These are the rules we would put at the top of any crash-fix session, in plain words:
1. Read before you write. Quote the error line and the file line you intend to change before changing anything.2. One change at a time. One edit, one start, then read the console.3. Never write back a file that contains [redacted]. Use set_env for .env, or ask me to make the edit.4. Do not change versions, delete files, or touch anything outside the file the error names without asking.5. If the console shows an out-of-memory stop, a corrupted save, a missing credential or a version mismatch, stop and report.6. Finish with: what you changed, in which file, and how you verified it.Two more habits help. Keep the conversation for one problem: an assistant that has spent an hour on a crash carries assumptions into the next task. And when the fix is done, revoke the control link or disconnect the OAuth grant if you will not use it again soon; the expiry will get there eventually, but there is no reason to leave a working credential lying in a chat history. Environment variables and secrets is the longer argument for keeping secrets in .env in the first place, which is what makes rule 3 easy to follow.
FAQ#
Can the AI see my passwords while it fixes the server?
Passwords and tokens are withheld from everything the panel hands an assistant: by variable name, by the shape of the value, and by matching the server's actual secrets in the finished text. Database passwords are never included. Redaction is a safety net rather than a guarantee, so do not paste secrets into the chat yourself.
Does a restart the AI triggers count towards the crash limit?
No. A restart through a link is logged as an action taken on purpose, and restarts you ask for are not counted by the crash watcher. Crash restarts are - three in an hour raise a warning and a ticket, six suspend the server - which is why stopping a looping server before you start diagnosing is worth doing.
Which assistants work with this?
The share link is a URL, so it pastes into Claude, ChatGPT or any assistant that can read a link. The MCP endpoint and OAuth sign-in were built and tested against Claude Code and Claude.ai custom connectors, and work with other clients that support remote MCP over HTTP.
Can the AI break my server worse than it already is?
It can make a bad edit to a file it is allowed to edit, and the most likely way is writing back a file whose secrets were redacted. It cannot delete files, reinstall, change startup, or touch backups and databases. Take a backup before the session and you can undo any edit it makes.
Should I just reinstall instead?
Rarely. A reinstall replaces the files that were working along with the one that was not, and the crash usually comes back the moment you restore your config. Find the line first; reinstall is for a server whose installed files are themselves damaged.


