Help

Error Reference

Every error and warning the Row-Template 1.4.0 installer and row-template command can print — on 3X-UI, PasarGuard and Rebecca — what it means, why it happens, and how to fix it.

This page lists every message the installer and the row-template command print as an error or a warning — including the panel adapters and the activation transaction engine — taken from the 1.4.0 source. Paste part of a message into the filter to find it; names, paths and numbers that change from run to run are shown in italics.

Messages look like this in your terminal:

Prefix Printed by Meaning
install: the bootstrap, install.sh, before the library is loaded The download or its verification stopped. Nothing was installed.
FAIL the management library An operation stopped, or verify found a hard problem.
warn the management library Worth your attention; the operation continued.
row-template: the command launcher The command could not load its library.

Messages from a panel adapter carry the panel after the FAIL or warn tag — panel pasarguard:, panel rebecca: — and messages from the activation engine start with transaction:. Messages that name a panel, a path or a version show it in italics: on your server they print the real value, such as PasarGuard or the install directory (/etc/3x-ui/sub_templates/row-template on 3X-UI, /etc/row-template on PasarGuard and Rebecca).

Refusals are safety checks

Many of these messages are Row-Template refusing something unsafe on purpose. Fix the cause the message names — never work around it. When an operation stops, the page your subscribers see stays as it was unless the message says otherwise.

432 messages

Server and panel

install:FAIL

the installer must run as root (e.g. sudo bash install.sh).this operation must run as root (e.g. sudo row-template ...)

What it means

Installing, and every command that changes the system (config, update, rollback, uninstall and the manager), needs root. Nothing was changed.

How to fix it

  1. Open a root shell with sudo -i and run the command again.
  2. For the one-command install, do not use sudo bash <(curl …): sudo closes the file descriptor <(…) creates. Become root first.
Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template uninstallmanager
install:

required tool not found: ‹tool›

What it means

The installer needs tar and sha256sum (or shasum) to verify and unpack the release, and one of them is missing. Nothing was downloaded or changed.

How to fix it

  1. Install the missing tool — on Debian and Ubuntu: apt-get install -y tar coreutils; on RHEL-family systems: dnf install -y tar coreutils.
  2. Run the installer again.
Seen in:installer
FAIL

no sha256 tool (sha256sum or shasum) found

What it means

Row-Template checks every file it installs with SHA-256 and found no tool to compute it. The operation stopped before changing anything.

How to fix it

Install coreutils (which provides sha256sum) and run the command again.

Seen in:installerrow-template updaterow-template rollbackrow-template verifymanager
FAIL

no 3x-ui installation was detected on this host.

What it means

Row-Template was to serve 3X-UI — because RT_PANEL=3xui was set, or because the installation on this server serves 3X-UI — but found neither the 3X-UI binary (/usr/local/x-ui/x-ui, /usr/local/bin/x-ui, or x-ui on the PATH) nor a systemd unit named x-ui.service. Nothing was changed.

How to fix it

  1. Run the installer on the server that runs your 3X-UI panel.
  2. Check the panel is installed: ls -l /usr/local/x-ui/x-ui and systemctl status x-ui.
  3. A panel running in a container, or installed under another name, is not supported.
  4. If this server runs PasarGuard or Rebecca, do not set RT_PANEL=3xui.
Seen in:installer
FAIL

cannot determine the 3x-ui version; refusing to proceed

What it means

3X-UI was found, but its version could not be read from x-ui -v. Row-Template will not install on a panel whose version it cannot confirm. Nothing was changed.

How to fix it

  1. Run /usr/local/x-ui/x-ui -v and check it prints a version such as 3.7.0.
  2. If it fails, repair or reinstall 3X-UI first, then run the installer again.
Seen in:installer
FAIL

3x-ui ‹version› is below the required minimum 3.6.0; not installing3x-ui ‹version› is below the minimum 3.6.0.

What it means

On 3X-UI, Row-Template needs version 3.6.0 or newer, and the panel is older. The installer stops without changing anything; verify reports it as a hard failure.

How to fix it

Update 3X-UI to 3.6.0 or newer, then run the installer (or row-template verify) again.

Seen in:installerrow-template verify
warn

XUI_DB_FOLDER database is not an SQLite database: ‹path› (not falling back to another database)

What it means

XUI_DB_FOLDER names a folder whose x-ui.db is not a valid SQLite database. Row-Template refuses it and deliberately does not try another location, which could belong to a different installation. The panel setting can then only be set by hand.

How to fix it

  1. Check the folder is the one your panel uses, and that x-ui.db in it is the live database.
  2. Correct or unset XUI_DB_FOLDER and run the command again.
  3. Or set Sub Theme Directory in the panel yourself — see Activation.
Seen in:installerrow-template verifyrow-template uninstallmanager
warn

panel database is not an SQLite database: ‹path› (not falling back to another database; set XUI_DB_FOLDER to the panel's database folder)

What it means

The first panel database found in the default locations (/etc/x-ui/x-ui.db, /usr/local/x-ui/x-ui.db, /etc/3x-ui/x-ui.db, in that order) is not a valid SQLite file. It is refused, and the next location is deliberately not tried. Automatic activation and the subThemeDir checks are unavailable until this is resolved.

How to fix it

  1. Find the database your panel really uses and run the command with XUI_DB_FOLDER=/path/to/its/folder.
  2. If the named file is a stale leftover, move it away — only when you are sure the panel does not use it.
  3. Or set Sub Theme Directory in the panel by hand.
Seen in:installerrow-template verifyrow-template uninstallmanager

Choosing the panel

FAIL

no supported panel was detected on this host: no 3x-ui installation, and no PasarGuard or Rebecca installation.

What it means

The installer looked for all three supported panels and found none. A panel counts as installed only when two independent signs of it agree — for example its configuration and its service, or its compose file and its data folder. Nothing was changed.

How to fix it

  1. Run the installer on the server that runs your panel, as root.
  2. Install the panel with its official installer first. Rebecca must be the 1.x binary install.
  3. If a line above says a panel *looks partly installed*, finish or repair that panel's installation, then run the installer again.
Seen in:installer
warn

‹panel› looks partly installed (only one of its files was found); it is not treated as present.

What it means

Only one sign of this panel was found — for example its configuration file without its service, or its data folder without its compose file. Row-Template never guesses at a half-installed panel, so it treats it as absent. On its own this is a warning; the next line says whether another panel was found instead.

How to fix it

  1. If the panel is meant to be installed, finish or repair its installation with its official installer, then run the installer again.
  2. If it is a leftover of a removed panel, you can ignore this warning.
Seen in:installer
FAIL

more than one panel is installed here (‹panels›); choose one with RT_PANEL=3xui|pasarguard|rebecca.

What it means

More than one supported panel is installed on this server, and the installer is running without a terminal, so it cannot ask which one to serve. A scripted fresh install on such a server must name the panel. Nothing was changed.

How to fix it

  1. Run the installer again with RT_PANEL set to the panel Row-Template should serve, for example RT_PANEL=pasarguard.
  2. Or run it in a terminal and choose the panel from the list. See Environment variables.
Seen in:installer
FAIL

RT_PANEL='‹value›' is not a panel Row-Template supports (3xui, pasarguard, rebecca).RT_PANEL=‹value›, but ‹panel› was not detected on this host.

What it means

RT_PANEL names the panel to install for. It must be exactly 3xui, pasarguard or rebecca, and that panel must be installed on this server. Nothing was changed.

How to fix it

  1. Correct the value — lowercase, no spaces — or unset it on a server with only one panel.
  2. If the panel is installed but not detected, check that it was installed with its official installer (Rebecca: the 1.x binary install).
Seen in:installer
FAIL

no panel was chosen; nothing was changed.

What it means

The panel chooser was left without a choice (for example with 0 or at the end of input). Nothing was changed.

How to fix it

Run the installer again and choose the panel Row-Template should serve.

Seen in:installer
FAIL

Row-Template is installed for ‹panel› at ‹install dir›; uninstall it before installing for ‹panel›.

What it means

One installation serves one panel. Row-Template is already installed on this server for the first panel named, and RT_PANEL asks for another. A re-run or an update always keeps the panel the installation was made for. Nothing was changed.

How to fix it

  1. To keep serving the current panel, run the installer (or row-template update) without RT_PANEL.
  2. To serve the other panel instead, run row-template uninstall first — it returns the current panel to its own page — then install again with RT_PANEL.
Seen in:installer
FAIL

Row-Template is installed twice (‹path› and ‹path›); remove one with 'row-template uninstall' before continuing.

What it means

Both install directories exist — /etc/3x-ui/sub_templates/row-template (3X-UI) and /etc/row-template (PasarGuard and Rebecca) — each with a VERSION file. Which one to manage would be a guess, so nothing is done until one is removed.

How to fix it

  1. Decide which installation you keep. Run row-template version to see which panel the command manages now.
  2. Remove the other one: run row-template uninstall for the installation the command manages, or, if the other is a stale leftover, move its folder away by hand after checking its panel no longer uses it.
Seen in:installer
warn

the panel record ‹path› is not a panel this release knows; treating the install as 3X-UI.

What it means

Each installation records the panel it serves in a file named PANEL. This one holds something this release does not recognise — it was edited by hand or damaged — so the installation is handled as a 3X-UI one.

How to fix it

If this installation serves PasarGuard or Rebecca, do not run commands against it until the record is right: uninstall and install again, or restore the file to pasarguard or rebecca.

Seen in:any command
FAIL

nothing was changed.

What it means

The installer stopped at the panel check: the line just above says why — no panel found, more than one panel, an invalid RT_PANEL, an installation made for another panel, or a Rebecca edition this release cannot serve.

How to fix it

Fix the problem named on the line above, then run the installer again.

Seen in:installer
FAIL

could not record the panel this install serves.

What it means

The file that records which panel this installation serves (PANEL, in the install directory) could not be written — usually a full disk or a read-only filesystem. The install stopped before activating anything.

How to fix it

Check df -h /etc and that /etc is writable, then run the installer again.

Seen in:installer

Downloading and checking a release

install:

curl is required to download the release.curl is required for RT_RELEASE_URL.

What it means

The release is downloaded with curl, which is not installed. Nothing was changed.

How to fix it

  1. Install it — apt-get install -y curl or dnf install -y curl — and run the installer again.
  2. Or install from a local folder with RT_RELEASE_DIR, which needs no curl: see Manual installation.
Seen in:installer
install:FAIL

RT_RELEASE_URL must use https:// (set RT_ALLOW_INSECURE_URL=1 to override for local testing).the release URL must use https:// (set RT_ALLOW_INSECURE_URL=1 to override for local testing).

What it means

RT_RELEASE_URL points at an http:// address. Releases are fetched over HTTPS only, so nobody on the network path can swap the files. Nothing was downloaded.

How to fix it

  1. Serve your mirror over HTTPS and use its https:// address.
  2. RT_ALLOW_INSECURE_URL=1 exists for local testing only — do not use it on a production server.
Seen in:installerrow-template updatemanager
install:FAIL

RT_RELEASE_URL must be an http(s) URL.the release URL must be an http(s) URL: ‹url›

What it means

The value of RT_RELEASE_URL is not a web address. Nothing was downloaded.

How to fix it

  1. Give the base URL of the folder holding the release files, for example https://mirror.example.com/row-template/1.3.0.
  2. For a folder on the server itself, use RT_RELEASE_DIR instead.
Seen in:installerrow-template updatemanager
warn

the release URL uses http:// (insecure); proceeding because RT_ALLOW_INSECURE_URL is set.

What it means

A plain-HTTP release source is being used because you allowed it. The checksum is still verified, but it cannot protect against someone who replaces both the files and their checksum on the way.

How to fix it

Use this only for local testing. On real servers, unset RT_ALLOW_INSECURE_URL and serve releases over HTTPS.

Seen in:row-template updatemanager
install:FAIL

cannot create a work directory.

What it means

A temporary folder for the download could not be created — usually because /tmp is full or not writable. Nothing was changed.

How to fix it

  1. Check free space with df -h /tmp and free some up.
  2. Check /tmp is writable, then run the command again.
Seen in:installerrow-template update
install:FAIL

cannot fetch manifest.txt from the release source.cannot fetch manifest.txt

What it means

The first file of the release could not be downloaded — the release source is unreachable. With RT_RELEASE_DIR, the folder has no manifest.txt. Nothing was changed.

How to fix it

  1. Check the server can reach GitHub: curl -I https://github.com.
  2. If GitHub is blocked, install or update from a local folder — see Manual installation.
  3. With RT_RELEASE_DIR, check the folder holds manifest.txt, SHA256SUMS and the tarball.
Seen in:installerrow-template update
install:FAIL

cannot fetch SHA256SUMS from the release source.cannot fetch SHA256SUMS

What it means

The release's checksum file could not be downloaded, and nothing is ever installed without it. Nothing was changed.

How to fix it

  1. Retry — the connection may have dropped.
  2. With RT_RELEASE_DIR, copy the release's SHA256SUMS into the folder.
Seen in:installerrow-template update
install:FAIL

manifest.txt has no artifact= entry.manifest has no artifact= entry

What it means

manifest.txt does not say which archive to open, so it is not a Row-Template release manifest. Nothing was changed.

How to fix it

  1. Download manifest.txt again from the official release page.
  2. On a mirror, check you uploaded the release's own file, unchanged.
Seen in:installerrow-template update
install:FAIL

manifest artifact name is unsafe: ‹file›manifest artifact name is unsafe: ‹file›

What it means

The archive name in manifest.txt contains / or .., which could point outside the download folder. It is refused. Nothing was changed.

How to fix it

Use the official, unmodified manifest.txt. A manifest like this was not produced by a Row-Template release.

Seen in:installerrow-template update
install:FAIL

cannot fetch the release artifact: ‹file›cannot fetch ‹file›

What it means

The release archive named in the manifest could not be downloaded, or is not in the RT_RELEASE_DIR folder. Nothing was changed.

How to fix it

  1. Retry — large downloads can time out on slow links.
  2. With RT_RELEASE_DIR, check the tarball named in manifest.txt is in the folder, with that exact name.
Seen in:installerrow-template update
install:FAIL

no checksum for ‹file› in SHA256SUMS; refusing to proceed.no checksum for ‹file› in SHA256SUMS; aborting (no override exists)

What it means

SHA256SUMS has no line for the archive, so it cannot be verified — and an unverified archive is never installed. There is no way to override this. Nothing was changed.

How to fix it

  1. Make sure SHA256SUMS and the tarball come from the same release.
  2. Download both again from the release page.
Seen in:installerrow-template update
install:

checksum for ‹file› is not 64 hex characters.

What it means

The checksum recorded for the archive is not a valid SHA-256 value, so SHA256SUMS is damaged or is not a release file. Nothing was changed.

How to fix it

Download SHA256SUMS again from the release page.

Seen in:installer
install:FAIL

release checksum verification failed; aborting (no --skip exists).release checksum verification failed; aborting

What it means

The downloaded archive does not match its published checksum: the download is incomplete, corrupted, or not the published file. It was not extracted, and nothing was changed.

How to fix it

  1. Run the command again — most mismatches are interrupted downloads.
  2. If it keeps failing, download the four release files by hand and check them with sha256sum -c SHA256SUMS (Manual installation).
  3. Never try to bypass this check: it is what stops a tampered release from being installed as root.
Seen in:installerrow-template update
install:FAIL

unsafe path in archive: ‹path›

What it means

The archive contains an absolute path or a .. path that could write outside the extraction folder. It is refused before extraction. Official releases never contain such paths.

How to fix it

Use the official release files. Download them again from the release page.

Seen in:installerrow-template update
install:FAIL

unsafe member type in archive: '‹type›'unsafe member type in archive: '‹type›' (symlink/hardlink/special refused)

What it means

The archive contains a symbolic link, hard link or special file. A link could redirect a later write outside the extraction folder, so the archive is refused before extraction.

How to fix it

Use the official release files. Official releases contain only regular files and folders.

Seen in:installerrow-template update
install:

could not extract the release artifact.

What it means

tar could not unpack the verified archive — usually a full disk. Nothing was installed.

How to fix it

Check free space with df -h /tmp /etc, free some up, and run the installer again.

Seen in:installer
install:

extracted payload has no lib/row-template.sh.

What it means

The archive verified and unpacked, but it has no management library, so it is not a Row-Template release. Nothing was installed.

How to fix it

Check manifest.txt names the Row-Template tarball, and use the official release files.

Seen in:installer
install:

unexpected error (line ‹line›); nothing was committed.

What it means

A command inside the bootstrap failed in a way it has no specific message for. The bootstrap only downloads and checks, so nothing was installed.

How to fix it

  1. Run the installer again; a network drop can cause this.
  2. If it repeats, open an issue with the full output and the line number.
Seen in:installer
FAIL

internal: install payload directory missing.

What it means

The library was started without the folder of the extracted release. This only happens if rt_cmd_install is run by hand without its argument. Nothing was changed.

How to fix it

Install through install.sh rather than calling the library directly.

Seen in:installer
FAIL

install payload has no template.html.the release payload has no template.html.

What it means

The extracted release has no template.html, so it cannot be a complete Row-Template release. Nothing was changed.

How to fix it

Download the release again; check manifest.txt and the tarball belong together.

Seen in:installerrow-template update
FAIL

payload artifact checksum mismatch.

What it means

The page inside the release does not match the checksum listed in the release's own SHA256SUMS. The archive was modified after it was built. Nothing was changed.

How to fix it

Use the official, unmodified release files.

Seen in:installerrow-template update
FAIL

install artifact failed structural validation.the release artifact failed structural validation.

What it means

The page in the release is not a complete Row-Template page (see Generating the page). Nothing was changed.

How to fix it

Download the release again from the official release page.

Seen in:installerrow-template update
FAIL

the release payload declares an invalid companion: ‹path›the release payload is incomplete: ‹path› is missing.payload checksum mismatch: ‹path›the release payload is incomplete; nothing was changed.

What it means

The release's management library comes with companion files (lib/transaction.sh and panels/) that must be installed with it. One is missing, fails its checksum, or is declared with an invalid path, so the release is refused as a whole — installing a new library without its companions would leave row-template broken. Nothing was changed.

How to fix it

  1. Download the release again; the four files must come from the same release.
  2. If you built the release yourself, build it with tools/make-release.sh, which packages the companions.
Seen in:installerrow-template update
warn

payload template directory is not a plain id: ‹id› (skipped)payload template ‹id› has no ‹file› (skipped)

What it means

A folder under templates/ in the release is not a design Row-Template recognises, or has no page for this server's panel, so it is ignored. The other designs install normally.

How to fix it

Nothing to do for an official release. If you added folders to a release yourself, remove them.

Seen in:installerrow-template update
FAIL

payload template ‹id› has no checksum sidecarpayload template ‹id› failed its checksumpayload template ‹id› failed structural validation

What it means

One of the release's designs has no checksum, does not match it, or is not a valid page. Every design is verified before any is installed, so the release is refused.

How to fix it

Download the release again from the official release page.

Seen in:installerrow-template update
FAIL

the release template store failed verification; nothing was activated.the release template store failed verification.

What it means

Follows one of the design messages above: a design in the release could not be verified. Nothing was activated and the page your subscribers see is unchanged.

How to fix it

Fix the message printed just before this one — usually by downloading the release again.

Seen in:installerrow-template update
FAIL

could not obtain a verified release.

What it means

row-template update could not download, verify or unpack the release. The reason is on the line just above. Nothing was changed.

How to fix it

  1. Fix the error printed just before this one.
  2. Without GitHub access, update from a local folder: RT_RELEASE_DIR=/path row-template update.
Seen in:row-template update
FAIL

payload template ‹id› is not a ‹panel› page

What it means

Every design in a release comes in a version for each panel. The version for this server's panel failed the check that it really is a page for that panel — it is damaged, or belongs to another panel — so the release is refused. Nothing was changed.

How to fix it

Download the release again from the official release page; the four files must come from the same release.

Seen in:installerrow-template update
FAIL

this release carries no ‹panel› pages; nothing was activated.this release carries no ‹panel› pages; nothing was changed.

What it means

The release has no pages built for this server's panel. Every release from 1.3.0 on carries pages for 3X-UI, PasarGuard and Rebecca; releases before 1.3.0 carry none for PasarGuard or Rebecca. So the release is incomplete or too old for this panel. Nothing was activated, and the page your subscribers see is unchanged.

How to fix it

  1. Use Row-Template 1.3.0 or newer — download it again from the official release page.
  2. With RT_RELEASE_DIR or RT_RELEASE_URL, check they point at a 1.3.0 or newer release.
Seen in:installerrow-template update

Installing

FAIL

What it means

The install directory — /etc/3x-ui/sub_templates/row-template on 3X-UI, /etc/row-template on PasarGuard and Rebecca — is a symbolic link. Row-Template never writes through a symlink, because it could redirect root-owned writes anywhere. Nothing was changed.

How to fix it

  1. Replace the link with a real directory — for example on 3X-UI: rm /etc/3x-ui/sub_templates/row-template && mkdir -p /etc/3x-ui/sub_templates/row-template (on PasarGuard and Rebecca the path is /etc/row-template).
  2. If you need the files on another disk, bind-mount that disk onto the path instead of linking it.
Seen in:installer
FAIL

an existing install was found at ‹install dir›; re-run interactively or set RT_ASSUME_YES=1 to repair.

What it means

Row-Template is already installed, and the installer is running without a terminal, so it will not repair the installation without your explicit consent. Nothing was changed.

How to fix it

  1. To move to the latest release, run row-template update.
  2. To repair in place (your branding and design are kept, and a backup is taken first), run the installer again with RT_ASSUME_YES=1, or run it in a terminal and choose 4 — Repair / Verify.
Seen in:installer
FAIL

could not create the install tree.

What it means

The folders of the install directory (/etc/3x-ui/sub_templates/row-template on 3X-UI, /etc/row-template on PasarGuard and Rebecca) could not be created — usually a full disk, a read-only /etc, or a file where a folder should be.

How to fix it

  1. Check free space with df -h /etc.
  2. Check that the parent folder (/etc/3x-ui/sub_templates on 3X-UI, /etc otherwise) is a writable directory, not a file, then run the installer again.
Seen in:installer
warn

could not create a pre-install backup.

What it means

While repairing an existing installation, the backup of its current state could not be taken. The repair continues without it, so you cannot roll back to the state before this repair.

How to fix it

Check free disk space under /etc. Run row-template verify when the installer finishes.

Seen in:installer
FAIL

could not install the canonical artifact.could not install VERSION.

What it means

A core file could not be written into the install directory — usually a full disk or a read-only filesystem. The live page has not been replaced.

How to fix it

Check df -h /etc and that /etc is writable, then run the installer again.

Seen in:installer
warn

could not install the management library; the CLI may be unavailable.could not install the row-template CLI to /usr/local/bin/row-template.

What it means

The page is installed, but the management library or the row-template command could not be written, so managing the installation afterwards may not work.

How to fix it

  1. Check free space and that /usr/local/bin exists and is writable.
  2. Run the installer again; it repairs the installation in place.
Seen in:installer
warn

could not install the management library's companions; run 'row-template update' to retry.

What it means

The installer files that come with the management library (lib/transaction.sh, panels/) could not be written. The page works; verify will report the installation as incomplete.

How to fix it

Check free space, then run row-template update — it installs them.

Seen in:installerrow-template configrow-template verifymanager
FAIL

configuration was not completed; the panel was not changed.

What it means

The branding step failed — the line above says which value was refused (service name, support URL or logo). The panel and the live page were not changed.

How to fix it

  1. Fix the value named just above and run the installer again.
  2. In an unattended install, check RT_SERVICE_NAME, RT_SUPPORT_URL and RT_LOGO_PATH.
Seen in:installer
FAIL

RT_TEMPLATE='‹value›' is not a template this release offers (available: row editorial canvas prism terminal pulse brutal arcade sketch signature saffron pulsenova prismnova terminalnova arcadenova meter notebook).

What it means

The design ID in RT_TEMPLATE is not one of this release's designs. The install stops rather than silently using Row.

How to fix it

Use one of the IDs in the message — lowercase, with no spaces, for example RT_TEMPLATE=pulsenova. The comparison table lists them.

Seen in:installer
warn

selected template '‹id›' is not in this release's template store; using Row.

What it means

During a repair, the design saved in your configuration is not part of this release, so Row is installed instead.

How to fix it

Choose another design afterwards from the manager: 2 — Reconfigure branding → 4 — Template.

Seen in:installer
FAIL

template '‹id›' is not in this release's template store.could not stage the selected template.

What it means

The chosen design could not be taken from the template store installed a moment earlier — the store is incomplete or the disk is full. The live page was not replaced.

How to fix it

Check free disk space and run the installer again.

Seen in:installer
FAIL

could not persist the template selection.

What it means

Your design choice could not be saved to config.env. Install stops before activation; update stops after staging the new version but before activating it, so the live page is unchanged.

How to fix it

Check free space and that config.env is writable, then run the same command again.

Seen in:installerrow-template update
FAIL

the template failed to generate/validate; the panel was not changed.

What it means

The page could not be generated from the design and your branding, or failed validation; the line above says why. The live page was not replaced and the panel setting was not touched.

How to fix it

Fix the problem named just above — often branding with a control character or an unreadable logo — and run the installer again.

Seen in:installer
warn

Choose 1-‹n›, or press Enter for Row.

What it means

The design chooser received something other than a number from its list.

How to fix it

Type the number shown next to the design, or press Enter to keep Row.

Seen in:installer

Activation and live checks

warn

Could not set subThemeDir automatically; use the manual step below.

What it means

The installer tried to point the panel at Row-Template through its database and could not confirm it worked. It made sure the panel service is running again. Row-Template itself is installed.

How to fix it

Set Panel Settings → Subscription → Sub Theme Directory to /etc/3x-ui/sub_templates/row-template, save, and restart the panel. See Activation.

Seen in:installer
warn

Could not set the theme automatically; the panel service state was preserved.

What it means

The manager's Activate / Re-apply theme could not set subThemeDir. The panel service was left running (or started again).

How to fix it

Set Sub Theme Directory in the panel by hand, as the manager shows.

Seen in:manager
warn

Automatic activation is unavailable here (sqlite3 is not installed).

What it means

The panel setting could not be read, so the manager cannot set it for you. The message names the usual reason — sqlite3 is not installed — but it also appears when the panel database was not found.

How to fix it

  1. Set Sub Theme Directory in the panel by hand, as shown.
  2. Or install sqlite3 (and, for an unusual database location, set XUI_DB_FOLDER), then choose 5 — Activate / Re-apply theme again.
Seen in:manager
warn

Live check: the panel served its built-in page. If you just set the theme dir, restart the panel; otherwise run 'row-template verify'.

What it means

A test request as a browser returned the panel's own page, not Row-Template. Either the panel has not picked up the new theme directory yet, or it is not set.

How to fix it

  1. If you just set it: restart the panel (systemctl restart x-ui).
  2. Otherwise run row-template verify and check the subThemeDir line.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
warn

Live check could not reach the subscription endpoint.

What it means

The test request to the subscription address on this server got no answer. This is a warning only; the installation itself succeeded.

How to fix it

  1. Check the panel is running: systemctl status x-ui.
  2. Check the panel's subscription service is enabled and listening, then run row-template verify.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
warn

Live check: a VPN client received HTML instead of subscription content.

What it means

A test request made like a VPN app received the web page instead of its configuration. VPN apps would fail to update.

How to fix it

  1. Check whether a proxy or CDN in front of the panel rewrites the User-Agent or Accept headers, and let them through unchanged.
  2. Run row-template verify to repeat the check.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

the installer's panel components are missing; run 'row-template update'.

What it means

Generating or activating the page on PasarGuard or Rebecca needs the installer's companion files (lib/transaction.sh and panels/), and they are missing — for example right after 1.1.0's own updater installed a newer release. Nothing was changed.

How to fix it

Run row-template update, which installs them, then try again.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

could not update the page in ‹panel›'s template directory.could not put the previous page back at ‹path›.

What it means

On PasarGuard and Rebecca the page is generated in the install directory and then copied into the panel's own templates directory. That copy failed, so the previously generated page was put back and the panel keeps serving the page it had. The second message means putting the previous page back failed as well.

How to fix it

  1. Read the line above for the cause — often a full disk, or a templates directory that is a symlink.
  2. Fix it and run the same command again; then run row-template verify.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
warn

activation on ‹panel› did not complete; the panel was restored to how it was.Activation did not complete; ‹panel› was restored to how it was.‹panel› was restored exactly to its state before the attempt.Activation did not complete and was rolled back; run 'row-template' and choose Activate to retry.

What it means

Activation on PasarGuard and Rebecca is a transaction: the panel's settings are snapshotted, changed and verified, and if any step fails they are restored from the snapshot. That happened here. restored exactly to its state before the attempt means the restore was confirmed by reading the panel's state back and comparing it with the snapshot; if the restore itself had failed, the lines above say rollback also failed instead (see that message). Row-Template itself stays installed.

How to fix it

  1. Read the lines just above for the step that failed — for example the panel could not be restarted, or the running panel did not pick up the page.
  2. Fix the cause, then run row-template and choose 5 — Activate / Re-apply theme.
Seen in:installermanager
FAIL

could not place the page for ‹panel›.

What it means

Automatic activation is not possible here (Rebecca on MySQL/MariaDB, or without sqlite3), so Row-Template only places the page in the panel's templates directory for you to select — and placing it failed. Nothing in the panel was changed.

How to fix it

Read the line above for the cause, fix it, then choose 5 — Activate / Re-apply theme in the manager again.

Seen in:installermanager
warn

Automatic activation is unavailable here; the page will be placed for you to select.

What it means

Rebecca's subscription settings cannot be written here — the panel uses MySQL/MariaDB, or sqlite3 is not installed — so the manager places the page and prints the two values to enter in the Rebecca dashboard.

How to fix it

In the Rebecca dashboard open Settings → Subscription → Templates and enter the values shown. See Activation.

Seen in:manager
FAIL

the page could not be generated; nothing was changed.

What it means

Before activating, the manager regenerates the page from your design and branding, and that failed — the line above says why. The panel was not touched.

How to fix it

Fix the problem named just above — often branding or disk space — and choose 5 — Activate / Re-apply theme again.

Seen in:manager
warn

Live check: the running ‹panel› does not use the Row-Template page yet; run 'row-template verify'.

What it means

After a change, the running panel was asked which subscription page it serves, and it is not Row-Template's yet. On PasarGuard this usually means the panel has not been restarted since .env changed.

How to fix it

  1. Run row-template verify — it names what does not match.
  2. On PasarGuard, restart the panel with pasarguard restart, then verify again.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

transaction: template placement failed for panel '‹panel›' (status ‹status›)transaction: static verification did not pass for panel '‹panel›' (status ‹status›)transaction: live verification failed for panel '‹panel›' (status ‹status›)

What it means

The step of the activation transaction that failed: placing the page in the panel's templates directory and selecting it, checking the files and the panel's settings afterwards, or asking the running panel which page it serves. Any of them makes the transaction restore the panel from its snapshot; the next message says whether that worked.

How to fix it

  1. Read the adapter's own message just above (it starts with panel pasarguard: or panel rebecca:) — it names the exact problem.
  2. Fix it, then choose 5 — Activate / Re-apply theme in the manager.
Seen in:installermanager
warn

transaction: live verification was unavailable for panel '‹panel›'; this is not a rollback triggertransaction: live verification does not apply to panel '‹panel›'

What it means

The last step of activation asks the running panel which page it serves. It could not be asked here, which is not a failure: the activation stands, and the files and settings were already verified.

How to fix it

Nothing to fix. To check the page subscribers receive, open a subscription link in a browser, or run row-template verify with RT_SMOKE_URL set to a subscription link.

Seen in:installermanager
FAIL

transaction: the safety snapshot could not be created; nothing was changedtransaction: the safety snapshot did not validate; nothing was changed

What it means

Before activation changes anything on PasarGuard or Rebecca, it takes a snapshot of the panel's settings (under backups.v2/ in the install directory). The snapshot could not be written, or did not pass its own check, so activation stopped. Nothing was changed.

How to fix it

  1. Check free space with df -h /etc and that nothing under the install directory is a symlink.
  2. Read any line above that starts with panel or names the snapshot, then activate again.
Seen in:installermanager
FAIL

transaction: another transaction holds the lock (‹path›)transaction: flock is not available; refusing to run without single-flight protection

What it means

Only one activation can run at a time, so each one takes a lock on the installation. Another row-template command is changing the panel right now — or flock (from util-linux) is not installed, and activation will not run without that protection. Nothing was changed.

How to fix it

  1. Wait for the other command to finish, then try again.
  2. If flock is missing, install util-linux: apt-get install -y util-linux or dnf install -y util-linux.
Seen in:installermanager
FAIL

transaction: the original failure was status ‹status›transaction: rollback also failed (‹reason›); the panel was left as the failed attempt left ittransaction: no further recovery is attempted automatically

What it means

Activation failed, and restoring the panel from its snapshot also failed. The panel's settings may be half-changed. This needs two independent failures, and the lines above name both.

How to fix it

  1. Run row-template verify to see what the panel selects now.
  2. Put the panel back by hand: on PasarGuard remove the # >>> row-template block from /opt/pasarguard/.env and run pasarguard restart; on Rebecca set Subscription page template back to your previous page in Settings → Subscription → Templates.
  3. Then report it with the full output.
Seen in:installermanager
warn

transaction: live verification after rollback was not available (status ‹status›)transaction: live verification after rollback did not pass (status ‹status›)

What it means

After restoring the panel from its snapshot, the transaction asks the running panel which page it serves. That check could not run, or did not match — typically because PasarGuard has not finished restarting. The restore itself is judged by reading the saved settings back, which the next message reports.

How to fix it

Run row-template verify in a minute, when the panel is up again.

Seen in:installermanager

PasarGuard

FAIL

panel pasarguard: the Row-Template block in ‹path› is damaged; fix or remove it by handpanel pasarguard: the Row-Template block in .env is damagedpanel pasarguard: the Row-Template block in .env is damaged; fix or remove it by hand

What it means

Row-Template selects its page with one marked block at the end of /opt/pasarguard/.env, from # >>> row-template to # <<< row-template <<<. That block is incomplete or was edited — for example one of its marker lines is missing — so Row-Template will not rewrite .env rather than risk touching your own lines. Nothing was changed.

How to fix it

  1. Open /opt/pasarguard/.env and look for the row-template lines.
  2. Delete the whole block — both marker lines and the two lines between them — or restore it exactly, then run the command again.
Seen in:installerrow-template uninstallmanager
FAIL

What it means

PasarGuard's .env (in /opt/pasarguard) is missing, or is a symbolic link. Row-Template writes only to a real .env, so nothing was changed.

How to fix it

Check your PasarGuard installation: ls -l /opt/pasarguard/.env. Replace a symlink with the real file, then run the command again.

Seen in:installerrow-template uninstallmanager
FAIL

panel pasarguard: CUSTOM_TEMPLATES_DIRECTORY is not a plain absolute path: ‹path›panel pasarguard: ‹path› is outside /var/lib/pasarguard, the directory the container shares with the host

What it means

Your own CUSTOM_TEMPLATES_DIRECTORY in .env is where Row-Template places its page. It must be a plain absolute path, and on a Docker install it must be inside /var/lib/pasarguard — the only folder the container shares with the host, so a page anywhere else would never be seen by the panel. Nothing was changed.

How to fix it

  1. Set CUSTOM_TEMPLATES_DIRECTORY to an absolute path under /var/lib/pasarguard — or remove your line so the default /var/lib/pasarguard/templates is used.
  2. Restart PasarGuard if you changed it, then run the command again.
Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifyrow-template uninstallmanager
FAIL

What it means

The page is placed at row-template/index.html inside PasarGuard's templates directory. Either that directory (or the row-template folder in it) is a symbolic link, or a file Row-Template did not create is already at that path. Row-Template never writes through a link and never overwrites a file that is not its own. Nothing was changed.

How to fix it

  1. Replace the link with a real directory.
  2. If the existing row-template/index.html is yours, move it elsewhere; then run the command again.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

panel pasarguard: the panel could not be restarted

What it means

PasarGuard reads .env only when it starts, so after changing it Row-Template restarts a running panel once — with docker compose up -d for the Docker install, or systemctl restart pasarguard for a source install. That failed. During activation the change is then rolled back; during uninstall the block has already been removed, and the panel picks that up the next time it starts.

How to fix it

  1. Check the panel: pasarguard status on the official (Docker) install, or systemctl status pasarguard on a source install.
  2. Restart it yourself (pasarguard restart), then run row-template verify.
Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template uninstallmanager
FAIL

panel pasarguard: the running panel does not use the Row-Template page yet (restart it)panel pasarguard: the running panel cannot see ‹path›/row-template/index.html

What it means

The live check asks the running PasarGuard container which page it uses and whether it can see the page file. Either the container still has the old setting — it has not been recreated since .env changed — or the page is not visible inside the container, which means the templates directory is not in the folder the container shares with the host.

How to fix it

  1. Restart PasarGuard (pasarguard restart) and run row-template verify again.
  2. If the page is still not visible, check that your CUSTOM_TEMPLATES_DIRECTORY is under /var/lib/pasarguard.
Seen in:installerrow-template verifymanager
FAIL

panel pasarguard: the page is not in place: ‹path›panel pasarguard: the placed page differs from the generated onepanel pasarguard: .env does not select the Row-Template page

What it means

PasarGuard is set up for Row-Template, but the pieces no longer agree: the page is missing from the templates directory, the copy there is not the page Row-Template generated last, or .env no longer selects it (the block was removed, or a later line of your own sets SUBSCRIPTION_PAGE_TEMPLATE again).

How to fix it

  1. Re-apply from the manager: row-template, then 5 — Activate / Re-apply theme.
  2. If you set SUBSCRIPTION_PAGE_TEMPLATE yourself below the Row-Template block, remove your line — the last assignment in .env wins.
Seen in:installerrow-template verifymanager
FAIL

panel pasarguard: the artifact is missing: ‹path›panel pasarguard: the artifact is not a valid PasarGuard pagepanel pasarguard: the artifact does not match its recorded checksumpanel pasarguard: the generated page is missing or invalid: ‹path›panel pasarguard: SOURCE is not a PasarGuard page this release can serve

What it means

Row-Template's own files for PasarGuard are not right: the installed design (dist/template.html) is missing, damaged, not built for PasarGuard, or does not match its checksum, or the generated page (sub.html) is missing or incomplete. Nothing in the panel was changed by this check.

How to fix it

Run row-template update to reinstall the designs and regenerate the page, then row-template verify.

Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifymanager
warn

panel pasarguard: ‹n› admin(s) set their own subscription page (sub_template); their users keep that page.

What it means

In PasarGuard an admin can have their own subscription template, which wins over the panel-wide setting Row-Template uses. The users of those admins keep seeing that page. This is your panel's configuration, so Row-Template reports it and changes nothing.

How to fix it

If those users should see Row-Template too, clear the admin's subscription template in PasarGuard's admin settings.

Seen in:installerrow-template verifymanager
warn

panel pasarguard: the panel's 'disable subscription template' setting is on, so browsers get the raw subscription instead of any page.

What it means

PasarGuard's disable subscription template setting is on, so the panel sends browsers the subscription itself rather than any page — Row-Template's included. Row-Template reports it and changes nothing.

How to fix it

Turn the setting off in PasarGuard's subscription settings if subscribers should see the page.

Seen in:installerrow-template verifymanager
warn

panel pasarguard: ‹path› is not Row-Template's; left in place

What it means

While removing its page, Row-Template found a file at its page's path that it did not create, and left it where it is.

How to fix it

Nothing to fix. Delete the file yourself if you do not need it.

Seen in:installerrow-template uninstallmanager
FAIL

panel pasarguard: after restoring, the Row-Template block is '‹state›', expected '‹state›'panel pasarguard: after restoring, the block's directory is not the recorded valuepanel pasarguard: after restoring, SUBSCRIPTION_PAGE_TEMPLATE is set, but the record says it was unsetpanel pasarguard: after restoring, SUBSCRIPTION_PAGE_TEMPLATE is not the recorded value

What it means

After putting .env back from a snapshot, Row-Template reads it again and compares it with what was recorded — and it does not match. The restore is therefore reported as failed rather than assumed to have worked.

How to fix it

  1. Open /opt/pasarguard/.env and compare the row-template block and your SUBSCRIPTION_PAGE_TEMPLATE line with what you expect.
  2. Remove the block by hand if activation did not succeed, restart PasarGuard, and run row-template verify.
Seen in:installermanager

Rebecca

FAIL

panel rebecca: this is Rebecca 0.0.x, the Python edition (Docker image ‹image›). Row-Template's Rebecca page is built for Rebecca 1.x, the Go edition, which Rebecca publishes for its binary install: install it with Rebecca's rebecca-binary.sh, then run this installer again.

What it means

Row-Template supports Rebecca 1.x, the Go edition. Docker Hub's rebeccapanel/rebecca image is still the 0.0.x Python edition, which renders pages from a different context: it would accept the setting and silently keep serving its own page. So the installer refuses it before changing anything — the panel is not modified.

How to fix it

  1. Install Rebecca 1.x with Rebecca's binary installer (rebecca-binary.sh) — the install Row-Template is tested against.
  2. Then run the Row-Template installer again.
Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifymanager
FAIL

panel rebecca: cannot tell which Rebecca edition this is (the Docker image could not be inspected); refusing rather than placing a page Rebecca may not be able to render.

What it means

For a Docker install, Row-Template reads the image to tell the 1.x Go edition from the 0.0.x Python edition. The image could not be inspected — Docker is not running, or the image named in the compose file is not present — so rather than guess, it stops. Nothing was changed.

How to fix it

  1. Check Docker and the panel: docker ps, rebecca status.
  2. Pull or start the panel's image, then run the command again. Rebecca's binary install (1.x) needs no image check.
Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifymanager
FAIL

panel rebecca: custom_templates_directory is not a usable absolute pathpanel rebecca: ‹path› is outside /var/lib/rebecca, the directory the container shares with the host

What it means

When Rebecca already has a Custom templates directory, Row-Template places its page there. The value set in Rebecca is not a plain absolute path, or — for a Docker install — is outside /var/lib/rebecca, the folder the container shares with the host. Nothing was changed.

How to fix it

In the Rebecca dashboard, set Settings → Subscription → Templates → Custom templates directory to an absolute path under /var/lib/rebecca (or clear it), then run the command again.

Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifyrow-template uninstallmanager
FAIL

panel rebecca: cannot read subscription_settingspanel rebecca: cannot read custom_templates_directorypanel rebecca: cannot read the panel selection (sqlite3 and a SQLite database are needed)

What it means

Rebecca's subscription settings could not be read from its database. Automatic activation and these checks need Rebecca's default SQLite database and the sqlite3 command. Nothing was changed.

How to fix it

  1. Install sqlite3 (apt-get install -y sqlite3) and run the command again.
  2. With MySQL/MariaDB, activation is manual: see Activation.
Seen in:installerrow-template verifymanager
FAIL

What it means

The page is placed at row-template/index.html inside Rebecca's templates directory. Either that directory (or the row-template folder in it) is a symbolic link, or a file Row-Template did not create is already at that path. Row-Template never writes through a link and never overwrites a file that is not its own. Nothing was changed.

How to fix it

  1. Replace the link with a real directory.
  2. If the existing row-template/index.html is yours, move it elsewhere; then run the command again.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

panel rebecca: the page is not in place: ‹path›panel rebecca: the placed page differs from the generated onepanel rebecca: the panel does not select the Row-Template page

What it means

Rebecca is set up for Row-Template, but the pieces no longer agree: the page is missing from the templates directory, the copy there is not the page Row-Template generated last, or Rebecca's Subscription page template no longer names it (someone chose another page in the dashboard).

How to fix it

Re-apply from the manager: row-template, then 5 — Activate / Re-apply theme. If you chose another page on purpose, leave it.

Seen in:installerrow-template verifymanager
FAIL

panel rebecca: the artifact is missing: ‹path›panel rebecca: the artifact is not a valid Rebecca pagepanel rebecca: the artifact does not match its recorded checksumpanel rebecca: the generated page is missing or invalid: ‹path›panel rebecca: SOURCE is not a Rebecca page this release can serve

What it means

Row-Template's own files for Rebecca are not right: the installed design (dist/template.html) is missing, damaged, not built for Rebecca, or does not match its checksum, or the generated page (sub.html) is missing or incomplete. Nothing in the panel was changed by this check.

How to fix it

Run row-template update to reinstall the designs and regenerate the page, then row-template verify.

Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifymanager
warn

panel rebecca: ‹n› admin(s) override the subscription page for their own users; those users keep the admin's page.

What it means

In Rebecca an admin can have their own subscription template settings, which win over the panel-wide ones Row-Template sets. The users of those admins keep seeing that page. Row-Template reports it and changes nothing.

How to fix it

If those users should see Row-Template too, clear that admin's subscription template settings in Rebecca.

Seen in:installerrow-template verifymanager
warn

panel rebecca: ‹path› is not Row-Template's; left in place

What it means

While removing its page, Row-Template found a file at its page's path that it did not create, and left it where it is.

How to fix it

Nothing to fix. Delete the file yourself if you do not need it.

Seen in:installerrow-template uninstallmanager
FAIL

panel rebecca: cannot read subscription_page_template back after restoringpanel rebecca: after restoring, subscription_page_template is '‹value›', expected '‹value›'panel rebecca: cannot read custom_templates_directory back after restoringpanel rebecca: after restoring, custom_templates_directory is not the recorded value

What it means

After writing Rebecca's two subscription settings back from a snapshot, Row-Template reads them again and compares them with what was recorded — and they do not match, or cannot be read. The restore is therefore reported as failed rather than assumed to have worked.

How to fix it

  1. In the Rebecca dashboard open Settings → Subscription → Templates and check Subscription page template and Custom templates directory.
  2. Set them to the values you want (Rebecca's own page is subscription/index.html), then run row-template verify.
Seen in:installerrow-template uninstallmanager

Designs and switching

warn

config.env stores an unknown template id (‹id›); resetting the selection to Row.config.env stores an unknown template id (‹id›); using Row.

What it means

The design saved in config.env is not one this release knows — the file was edited by hand, or came from elsewhere. Row is used instead, so the page keeps working, and the saved choice is corrected the next time it is written.

How to fix it

Choose the design you want from the manager (2 — Reconfigure branding → 4 — Template). Do not edit config.env by hand.

Seen in:installerrow-template configrow-template updaterow-template verifymanager
FAIL

unknown template id: ‹id›unknown template id: ‹id›unknown template id: ‹id› (available: row editorial canvas prism terminal pulse brutal arcade sketch signature saffron pulsenova prismnova terminalnova arcadenova meter notebook)

What it means

A design ID that this release does not ship was asked for. Nothing was written: an unknown ID is never saved.

How to fix it

Use one of the IDs listed in the comparison table.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

the effective template '‹id›' is missing from the template storethe effective template '‹id›' failed its store checksum

What it means

While applying a branding change, the selected design's file in the template store was missing or did not match its checksum. The change was undone; the previous page is still live.

How to fix it

  1. Run row-template verify to see the state of the template store.
  2. Run row-template update to reinstall every design, then apply the change again.
Seen in:row-template configmanager
FAILwarn

template '‹id›' is not installed; re-run the installer to refresh the template storeNo templates are installed, and they could not be restored automatically (see above).

What it means

The design you picked — or every design — is missing from the installation's template store. The manager restores missing designs itself when it opens, by downloading them from the release you have installed; this appears when that was not possible, and the line above says why.

How to fix it

Make sure the server can reach the release source and open the manager again — or run row-template update (or re-run the installer), which installs every design of the release.

Seen in:manager
FAIL

template ‹id› failed its checksum; refusing to switch

What it means

The installed copy of that design has been altered or damaged, so it will not be activated. Nothing was changed.

How to fix it

Run row-template update to reinstall every design, then switch again.

Seen in:manager
FAIL

the ‹id› template failed to generate with the current branding

What it means

A trial page built from the new design and your current branding failed. This check runs before anything changes, so nothing did.

How to fix it

  1. Read the line printed just above — it names the exact problem.
  2. If it concerns branding, correct it (for example with Reset branding) and switch again.
Seen in:manager
FAIL

could not snapshot the current state; aborting

What it means

A backup must be taken before a template switch, and it could not be. The switch was cancelled; nothing changed.

How to fix it

Check free disk space under /etc and try again.

Seen in:manager
FAIL

could not stage the selected template; the previous state was restoredcould not persist the template selection; the previous state was restoredactivation of the new template failed; the previous state was restoredthe switched template failed post-activation validation; the previous state was restored

What it means

A step of the template switch failed after the backup was taken, so the backup was restored: the previous design is live again, exactly as before.

How to fix it

  1. Run row-template verify to confirm the installation is healthy.
  2. Check free disk space, then try the switch again. If it fails the same way, report it.
Seen in:manager
FAIL

automatic restore failed; run 'row-template rollback'

What it means

A template switch failed, and restoring the backup taken just before it also failed. The installation may be half-switched.

How to fix it

  1. Run row-template rollback — it restores that backup.
  2. Then run row-template verify.
Seen in:manager
FAIL

What it means

The template store — dist/templates/ in the install directory — is a symbolic link or a file instead of a directory, so Row-Template will not write the designs into it. Nothing was changed.

How to fix it

Remove the link or file named in the message (it is inside the install directory) and run the same command again; the store is recreated with every design.

Seen in:installerrow-template configrow-template updaterow-template verifymanager
warn

not reading templates from ‹path›: it is not a plain directory.the copy of design '‹id›' in ‹path› fails its checksum or structural check; it was not moved.left ‹path› in place: it holds files Row-Template does not recognise.

What it means

Designs left outside the template store — where an update from an earlier release could put them — are moved back into dist/templates/. These warnings mean part of that could not be done safely: the folder is a link or special file, one copy is damaged and was left where it was, or the folder also holds files Row-Template does not recognise, so it was not removed. The designs in the store are unaffected.

How to fix it

  1. Run row-template verify as root to see the state of the store; row-template update reinstalls any design that is missing.
  2. Once the store is complete, you can delete the leftover folder named in the message by hand.
Seen in:installerrow-template configrow-template updaterow-template verifymanager

Branding and configuration

FAIL

logo file not found: ‹path›

What it means

Nothing exists at the logo path you gave. The logo was not changed.

How to fix it

Give the full path of the image, for example /root/logo.png, and check it with ls -l.

Seen in:installerrow-template configmanager
FAIL

What it means

The logo path is a symbolic link — or was replaced by one between the check and the read. Logos are read only from regular files. Nothing was changed.

How to fix it

Give the path of the real file. readlink -f /path/to/logo.png shows where a link points.

Seen in:installerrow-template configmanager
FAIL

logo path is not a regular file

What it means

The logo path is a directory or a special file, not an image file.

How to fix it

Give the path of the image file itself, not of its folder.

Seen in:installerrow-template configmanager
FAIL

cannot size logo filelogo file is empty

What it means

The logo file could not be read, or it is empty.

How to fix it

Check the file with ls -l — it must be readable and larger than zero bytes — or export the image again.

Seen in:installerrow-template configmanager
FAIL

logo too large: ‹size› bytes (max 262144)

What it means

Logos are limited to 256 KiB (262144 bytes), because the image is embedded in every page served.

How to fix it

  1. Resize the image: a logo is shown small, so 256×256 pixels is plenty.
  2. Save it as WebP or an optimised PNG, for example cwebp -q 85 logo.png -o logo.webp.
Seen in:installerrow-template configmanager
FAIL

unsupported image: only PNG, JPEG or WebP by content

What it means

The file's content is not PNG, JPEG or WebP. The type is read from the file's first bytes, not its name, so renaming a file does not change it. SVG and GIF are not accepted.

How to fix it

  1. Convert the image, for example convert logo.svg -resize 256x256 logo.png (ImageMagick).
  2. Check what a file really is with file logo.png.
Seen in:installerrow-template configmanager
FAIL

service name rejected (control chars or too long)Rejected: control characters or too long.

What it means

The service name is longer than 120 characters or contains a control character such as a line break or a tab. It was not saved.

How to fix it

Use a shorter, single-line name. In a script, check RT_SERVICE_NAME has no trailing newline.

Seen in:installerrow-template configmanager
warn

Use https://, http://, tg:// or mailto: — or clear it with -Use https://, http://, tg:// or mailto:.

What it means

The support link must be a link a browser can safely open. Anything else — including javascript: and data: links — is refused, and you are asked again.

How to fix it

Enter a link such as https://t.me/your_support, tg://resolve?domain=your_support or mailto:support@example.com, or - to have none.

Seen in:installerrow-template configmanager
FAIL

support URL rejected

What it means

The support link given in RT_SUPPORT_URL does not start with https://, http://, tg:// or mailto:, or contains a control character. It was not saved.

How to fix it

Correct RT_SUPPORT_URL, or set it empty to have no support link.

Seen in:installerrow-template config
FAIL

branding contains control characters; refusing to generate.

What it means

The stored service name or support link contains a control character — which only happens if config.env was edited by hand or restored from elsewhere. Rather than build a broken page, generation stops and the live page stays as it is.

How to fix it

  1. Set the branding again through the tools, which validate it: row-template config, or Reset branding in the manager.
  2. Do not edit config.env by hand.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

cannot create a temp file.

What it means

row-template config sets your current configuration aside before changing it, and could not create the temporary file for that — usually a full /tmp. Nothing was changed.

How to fix it

Free space in /tmp (df -h /tmp) and run the command again.

Seen in:row-template config
FAIL

configuration was not changed.

What it means

A value given to row-template config was refused — the line above says which. The previous configuration was restored, so nothing changed.

How to fix it

Correct the value named just above and run row-template config again.

Seen in:row-template config
FAIL

the template selection could not be reconciled; the previous state is still in place.could not reconcile the template selection; the previous state was restored.

What it means

After saving the new branding, the installed design could not be matched to your saved choice — the template store is missing or damaged. Everything was put back as it was.

How to fix it

Run row-template verify, then row-template update to reinstall the designs, and apply the change again.

Seen in:row-template configmanager
FAIL

the new branding failed validation; restoring the previous configuration.reconfiguration aborted; the previous template is still in place.

What it means

The page built with the new branding did not pass validation, so it was not activated. The previous configuration and page were restored.

How to fix it

Read the lines printed just before — they name the problem — correct it, and try again.

Seen in:row-template configmanager
FAIL

could not write the configuration.

What it means

The manager could not write config.env — usually a full disk. The previous configuration and page were restored.

How to fix it

Check free space under /etc and try again.

Seen in:manager
warn

This clears custom branding (service name, support URL, logo) and

What it means

Not an error: the start of the confirmation for Reset branding, which continues “returns Row-Template to its default look. It does NOT remove Row-Template.”

How to fix it

Answer y to clear the service name, support link and logo, or press Enter to cancel.

Seen in:manager

Generating the page

FAIL

canonical artifact missing: ‹path›

What it means

The installed design file, dist/template.html, is missing, so the page cannot be regenerated. The live page was not touched.

How to fix it

Run row-template update, or re-run the installer to repair the installation.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

artifact branding markers not found exactly once (open=‹n› close=‹n›)

What it means

Your branding is placed between two markers in the design file, each of which must appear exactly once. They do not, so the file is not an unmodified Row-Template design. Nothing was changed.

How to fix it

Run row-template update to reinstall the designs. Do not edit design files by hand.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

generated template missingcannot size generated templategenerated template implausibly small (‹size› bytes)generated template does not begin with <!doctype html>generated template does not end with </html>branding markers not intact in generated templategenerated template missing the #sub-data islandgenerated template missing the BRANDING blockgenerated template still contains unsubstituted build placeholders

What it means

Every page is checked before it can go live: it must be a complete HTML document of plausible size, with its branding block, its data island and no leftover build placeholders. This one failed a check, so it was not activated — the page your subscribers see is unchanged. During verify or a switch, the same checks can report a damaged file.

How to fix it

  1. Check free disk space — a full disk truncates files.
  2. Run row-template update to reinstall the designs and regenerate the page.
  3. If it happens with a fresh official release, report it with the exact message.
Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

refusing to install an invalid artifact

What it means

A design file failed the page checks above just before it would have been installed, so it was not. Nothing was changed.

How to fix it

Fix the check reported on the line above, then try again.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager
FAIL

refusing to install an artifact that is not a ‹panel› page

What it means

A design file about to be installed is not built for this server's panel — each panel has its own template engine, so a page made for one cannot be served by another. It was not installed, and nothing was changed.

How to fix it

Run row-template update to reinstall this release's designs.

Seen in:installerrow-template configrow-template updaterow-template rollbackmanager

Updating

warn

template '‹id›' is not in this release; falling back to Row.

What it means

The design you use is not included in the release you are updating to, so the update installs Row instead. Your branding is kept.

How to fix it

After the update, choose another design from the manager (2 — Reconfigure branding → 4 — Template).

Seen in:row-template update
FAIL

the selected template failed structural validation.

What it means

The new release's copy of your design did not pass the page checks. The update stopped before anything was replaced.

How to fix it

Run the update again; if it repeats with the official release, report it.

Seen in:row-template update
FAIL

could not back up the current install; aborting.

What it means

An update always takes a backup first, and it could not. The update stopped; nothing was replaced.

How to fix it

Check free disk space under /etc and run row-template update again.

Seen in:row-template update
FAIL

failed to stage the new artifact; the running template is unchanged.

What it means

The new version's page could not be put in place — usually a full disk. The page your subscribers see is unchanged.

How to fix it

Free some disk space and run row-template update again.

Seen in:row-template update
warn

could not update the VERSION file.could not update the management library.could not update the row-template CLI.

What it means

The new page was installed, but a supporting file could not be replaced. The update continues; the version shown, or the command itself, may still be the old one.

How to fix it

Check free disk space and run row-template update again to finish replacing it.

Seen in:row-template update
warn

could not update the management library's companions; run 'row-template update' to retry.

What it means

The installer files that come with the management library (lib/transaction.sh, panels/) could not be replaced. The page works; verify will report the installation as incomplete.

How to fix it

Check free space and run row-template update again.

Seen in:row-template update
FAILwarn

activation of the new version failed; rolling back.rolled back to ‹version›; no changes are live.

What it means

The new version was installed but its page could not be activated, so the backup taken at the start was restored automatically. Your subscribers kept seeing the previous page throughout. The command exits with status 1.

How to fix it

  1. Run row-template verify to confirm the previous version is healthy.
  2. Read the lines before these for the cause, fix it (often disk space or branding), and update again.
Seen in:row-template update
FAIL

activation failed AND automatic rollback failed; run 'row-template rollback' to recover.

What it means

The new version could not be activated, and restoring the previous one also failed. The live page is whatever was there before the update, but the installed files may be mixed.

How to fix it

  1. Run row-template rollback to restore the backup taken before the update.
  2. Then run row-template verify.
Seen in:row-template update
warn

This installation is incomplete: some installer components are missing, as after an update from 1.1.0.

What it means

The manager found that the installer's companion files are missing — the state right after 1.1.0's own updater installed a newer release, when completing the installation automatically did not work.

How to fix it

Accept Re-install … now to complete it? — or run row-template update — to install them and every design. Upgrading from 1.1.0 or 1.2.0 →

Seen in:manager
warn

Unable to check for updates right now (network or release source unavailable).

What it means

The manager could not read the latest release's manifest.txt. Your installation is not affected, and nothing was changed.

How to fix it

  1. Check the server can reach GitHub, and try again later.
  2. Without GitHub access, update from a local folder: RT_RELEASE_DIR=/path row-template update.
Seen in:manager
warn

could not download Row-Template ‹version› to complete the installation. It will be retried the next time the manager opens; 'row-template update' also completes it.the release source offers ‹version›, not the installed ‹version›; nothing was changed. Run 'row-template update' to update.the installation is still incomplete; run 'row-template verify' for details.this installation is incomplete and its version is unknown; run 'row-template update' to repair it.

What it means

1.1.0's own updater copies only part of a newer release. So the first time you open row-template, or run row-template config or row-template verify as root, after such an update, Row-Template downloads the rest of the same version you have installed — every design and the remaining installer files — before doing anything else. That did not work: the release source could not be reached, it offered a different version (it never installs another version this way), the version installed could not be read, or something is still missing afterwards. Your page, branding, design and backups are unchanged.

How to fix it

  1. Make sure the server can reach the release source, then open the manager again.
  2. Or run row-template update, which installs the latest release in full.
Seen in:row-template configrow-template verifymanager

Backups and rollback

FAIL

nothing to back up: ‹path› missing

What it means

A backup was needed, but the installed design file is missing, so there is nothing to back up. The operation that needed it stopped.

How to fix it

Re-run the installer to repair the installation.

Seen in:installerrow-template updaterow-template rollbackmanager
warn

could not prune backup: ‹path›

What it means

An old backup beyond the two kept could not be deleted. Nothing else is affected.

How to fix it

Check the folder's permissions. You can delete an old backup folder under backups/ by hand.

Seen in:installerrow-template updatemanager
FAIL

backup failed validation: ‹path›the selected backup failed validation: ‹backup›

What it means

The backup's page no longer matches the checksum stored with it, or its files are missing. A damaged backup is never restored. Nothing was changed.

How to fix it

List the backups — ls /etc/3x-ui/sub_templates/row-template/backups/ on 3X-UI, ls /etc/row-template/backups/ on PasarGuard and Rebecca — and choose another with row-template rollback --to <name>.

Seen in:row-template updaterow-template rollbackmanager
warn

could not restore VERSION from the backup.

What it means

The backup's page was restored, but its VERSION file could not be, so row-template version may show the wrong version.

How to fix it

Check free disk space. Running the rollback again rewrites it.

Seen in:row-template updaterow-template rollbackmanager
FAIL

could not persist the restored template selection

What it means

The restored design could not be recorded in config.env. The operation stops without activating the restored page.

How to fix it

Check free space and that config.env is writable, then run row-template rollback again.

Seen in:row-template updaterow-template rollbackmanager
FAIL

--to requires a backup directory.usage: row-template rollback [--auto | --to <backup-dir>]

What it means

rollback was given an option it does not know, or --to without a backup.

How to fix it

  1. Use row-template rollback (newest backup), row-template rollback --auto (the same), or row-template rollback --to <name>.
  2. Backup names are the folders under backups/ in the install directory: /etc/3x-ui/sub_templates/row-template/backups/ on 3X-UI, /etc/row-template/backups/ on PasarGuard and Rebecca.
Seen in:row-template rollback
FAIL

no valid backup is available to roll back to.

What it means

There is no backup whose page still matches its checksum. Backups are taken by updates, template switches and repairs; a fresh installation has none yet.

How to fix it

Nothing to roll back to. To reinstall the current release, run row-template update.

Seen in:row-template rollback
FAIL

refusing to roll back from a path outside the backups tree.

What it means

--to pointed at a folder outside backups/. Only Row-Template's own backups can be restored. Nothing was changed.

How to fix it

Give a folder name from backups/ in the install directory (/etc/3x-ui/sub_templates/row-template/backups/ on 3X-UI, /etc/row-template/backups/ on PasarGuard and Rebecca), or use row-template rollback --auto.

Seen in:row-template rollback
warn

could not snapshot the current version before rollback.

What it means

The safety backup of the current version could not be taken. The rollback continues, but if it fails the current version cannot be brought back automatically.

How to fix it

Check free disk space under /etc, and run row-template verify when the rollback finishes.

Seen in:row-template rollback
FAIL

could not stage the backup; the running template is unchanged.

What it means

The backup could not be put in place — the line above says why. The page your subscribers see is unchanged.

How to fix it

Fix the problem named just above. If it says the backup was made for another panel, see that message.

Seen in:row-template rollback
FAILwarn

rollback activation failed; attempting to restore the current version.restored the previously-running version; nothing changed.

What it means

The older version was staged but its page could not be activated, so the safety backup of the current version was restored. Nothing changed. The command exits with status 1.

How to fix it

Read the lines above for the cause (often branding or disk space), fix it, and try again.

Seen in:row-template rollback
FAIL

rollback failed and the current version could not be restored automatically.

What it means

Both the rollback and the automatic return to the current version failed. The live page is what it was before, but the installed files may be mixed.

How to fix it

  1. Run row-template verify to see the state.
  2. Try row-template rollback --to <name> with the safety backup just created (the newest folder in backups/), or re-run the installer to repair.
Seen in:row-template rollback
FAIL

could not create a new backup directory under ‹path›

What it means

Backups are named by the time they are taken, to the second. No free name could be claimed in backups/ — the disk is full, the folder is not writable, or names kept colliding. The operation that needed the backup says on the next line what it did next.

How to fix it

  1. Check free space with df -h /etc, and that backups/ in the install directory is a writable directory.
  2. Run the command again.
Seen in:installerrow-template updaterow-template rollbackmanager
FAIL

backup ‹backup› was made for ‹panel›, not ‹panel›; refusing to restore it.

What it means

Every backup records the panel it was made on, and is only ever restored onto that panel: a page built for one panel's template engine cannot be served by another. Backups made before 1.3.0 count as 3X-UI backups. Nothing was changed.

How to fix it

Choose a backup made on this panel: list the backups/ folder in the install directory and use row-template rollback --to <name>.

Seen in:row-template updaterow-template rollbackmanager
warn

backup artifact has no store match and no recorded template; defaulting to Row.backup artifact recorded template '‹id›' is not installed; defaulting to Row.

What it means

The backup's page is not byte-identical to any design of the current release — an older release made it — so rollback uses the design the backup records instead. This backup records none (older releases did not), or one this release does not ship, so Row is restored. The page is taken from the designs installed now; the backup's version number is restored, and your current branding is kept.

How to fix it

Nothing to fix. To use another design afterwards, choose it from the manager (2 — Reconfigure branding → 4 — Template).

Seen in:row-template updaterow-template rollbackmanager

Verify results

FAIL

What it means

The install directory does not exist, or is a symbolic link. Row-Template is not installed properly.

How to fix it

Re-run the installer. If the directory is a symlink, replace it with a real directory first.

Seen in:row-template verify
FAIL

canonical artifact missing checksum or does not match it.canonical artifact missing or unreadable: ‹path›

What it means

The installed design file (dist/template.html) is missing, or no longer matches the checksum recorded when it was installed — it was changed or damaged.

How to fix it

Run row-template update to reinstall it. The live page keeps working in the meantime.

Seen in:row-template verify
FAIL

a template in the store does not match its checksum:‹ids›.

What it means

One or more designs in the template store — named at the end of the message — were changed or damaged after installation.

How to fix it

Run row-template update to reinstall every design.

Seen in:row-template verify
FAIL

canonical artifact does not match the selected template (‹id›).

What it means

config.env names one design but a different one is installed. Row-Template never produces this itself; it points to a hand edit or an interrupted operation.

How to fix it

Run row-template config and press Enter at every question — it realigns the installed design with the saved choice — or run row-template update.

Seen in:row-template verify
FAIL

selected template '‹id›' is missing from the template store.

What it means

The design you selected is not in the installation's template store.

How to fix it

Run row-template update to reinstall the template store.

Seen in:row-template verify
FAIL

template store missing or empty; run 'row-template update' to install it.

What it means

The installation has no template store — the state right after 1.1.0's own updater installed a newer release, which it does not know how to complete. Run as root, verify completes the installation itself first (every design of the version you have), so this line means verify was not run as root, or that was not possible.

How to fix it

Run row-template verify as root, or run row-template update. Upgrading from 1.1.0 or 1.2.0 →

Seen in:row-template verify
FAIL

live template failed structural validation.live template missing or unreadable: ‹path›

What it means

The page the panel serves, sub.html, is missing or incomplete. Subscribers opening their link in a browser may see an error.

How to fix it

Regenerate it: run row-template update, or re-run the installer to repair.

Seen in:row-template verify
FAIL

VERSION file missing or empty.

What it means

The installation's VERSION file is missing, so its version is unknown.

How to fix it

Re-run the installer, or run row-template update.

Seen in:row-template verify
warn

config present but not readable.

What it means

config.env exists but the current user cannot read it. It is readable only by root and its group on purpose.

How to fix it

Run row-template verify as root.

Seen in:row-template verify
warn

config.env is other-writable (mode ‹mode›); tighten to 640.

What it means

Any user on the server can modify your branding file. Row-Template itself always writes it with mode 640.

How to fix it

chmod 640 /etc/3x-ui/sub_templates/row-template/config.env on 3X-UI, or chmod 640 /etc/row-template/config.env on PasarGuard and Rebecca.

Seen in:row-template verify
warn

management library not found under the install root.CLI not found or not executable at /usr/local/bin/row-template.

What it means

The management library in the install directory, or the row-template command, is missing. The page keeps working, but managing it may not.

How to fix it

Re-run the installer; it repairs the installation in place and keeps your configuration.

Seen in:row-template verify
warn

installer components are missing (lib/transaction.sh, panels/), as after an update from 1.1.0; run 'row-template update' to complete the installation.

What it means

The installer's companion files are missing — the state right after 1.1.0's own updater installed a newer release, since it copies only the library and the command. Run as root, verify completes the installation first, so this line means it was not run as root, or that was not possible. The page keeps working.

How to fix it

Run row-template verify as root, or row-template update. Upgrading from 1.1.0 or 1.2.0 →

Seen in:row-template verify
warn

could not determine the 3x-ui version.3x-ui installation was not detected.

What it means

verify could not find the panel, or could not read its version. The page files are checked anyway.

How to fix it

  1. Run verify on the server that runs 3X-UI, as root.
  2. Check /usr/local/x-ui/x-ui -v prints a version.
Seen in:row-template verify
warn

panel subThemeDir is empty; set it to ‹install dir›.

What it means

Row-Template is installed but not activated: the panel still serves its built-in page.

How to fix it

Activate it — with the manager's 5 — Activate / Re-apply theme, or in the panel. See Activation.

Seen in:row-template verify
warn

panel subThemeDir does not point at Row-Template.

What it means

The panel is set to serve a different theme directory. Row-Template is installed but not the page subscribers see.

How to fix it

If that is not intended, activate Row-Template — see Activation.

Seen in:row-template verify
warn

leftover staging files found under the install root (possible interrupted update).

What it means

Temporary files starting with .stage. or .live. were left behind by an interrupted command. They are never used.

How to fix it

  1. When no row-template command is running, delete them — on 3X-UI: find /etc/3x-ui/sub_templates/row-template -maxdepth 2 \( -name '.stage.*' -o -name '.live.*' \) -delete (on PasarGuard and Rebecca, use /etc/row-template).
  2. Then run row-template verify again.
Seen in:row-template verify
warn

live render check: the panel served its built-in page.

What it means

A local test request, made as a browser, got the panel's own page rather than Row-Template.

How to fix it

Check activation, then restart the panel (systemctl restart x-ui) and run verify again.

Seen in:row-template verify
warn

live render check: the subscription endpoint was unreachable.

What it means

The subscription address on this server did not answer a local request.

How to fix it

Check the panel is running and its subscription service is enabled, on the port configured in the panel.

Seen in:row-template verify
warn

VPN-client check: HTML was returned instead of subscription content.

What it means

A local request made as a VPN app received the web page instead of its configuration, so VPN apps would fail to update.

How to fix it

Make sure nothing in front of the panel changes the User-Agent or Accept headers of requests.

Seen in:row-template verify
FAIL

verification FAILED (‹n› hard issue(s), ‹n› warning(s)).

What it means

The summary of verify: at least one hard check failed. The command exits with status 1.

How to fix it

Fix the FAIL lines above it — each is explained on this page.

Seen in:row-template verify
warn

verification passed with ‹n› warning(s).

What it means

The summary of verify: no hard failures, so the installation is working, but some checks warned.

How to fix it

Review the warn lines above it; each is explained on this page.

Seen in:row-template verify
warn

templates were found outside the store at ‹install dir›/‹path›; run 'row-template verify' as root to move them.

What it means

Designs were found in the install directory but outside the template store, where an update from an earlier release could leave them. They are harmless but not used. verify only moves them when it runs as root.

How to fix it

Run row-template verify as root: it moves them into dist/templates/ and changes nothing else.

Seen in:row-template verify
warn

template store is incomplete (‹n› of ‹n› designs); missing:‹ids›. Run 'row-template update' to restore them.

What it means

Some of the designs this release ships are missing from the installation's template store. The live page keeps working; the missing designs cannot be chosen until they are restored. Run as root, verify downloads them from the installed release first, so this line means that was not possible.

How to fix it

Run row-template update — it reinstalls every design.

Seen in:row-template verify
FAIL

the panel components are missing; run 'row-template update'.

What it means

On PasarGuard and Rebecca, verify checks the panel through the installer's companion files (lib/transaction.sh, panels/), and they are missing, so the panel could not be checked. This is a hard failure.

How to fix it

Run row-template update, which installs them, then row-template verify again.

Seen in:row-template verify
warn

‹panel› was not detected on this host.the ‹panel› configuration could not be read.

What it means

The panel this installation serves could not be found on the server, or its configuration (PasarGuard's .env, or Rebecca's subscription settings) could not be read. The page files are checked anyway.

How to fix it

  1. Run verify as root, on the server that runs the panel.
  2. Check the panel itself: rebecca status, or for PasarGuard pasarguard status (official Docker install) or systemctl status pasarguard (source install). If it was removed, remove Row-Template too with row-template uninstall.
Seen in:row-template verify
warn

‹panel› does not select the Row-Template page; activate it from the manager.

What it means

Row-Template is installed, but the panel does not select its page — it was never activated, or another page was chosen in the panel since. Subscribers see the panel's own page.

How to fix it

Run row-template and choose 5 — Activate / Re-apply theme. See Activation.

Seen in:row-template verify
FAIL

‹panel›'s Row-Template page is out of step (see above); re-apply it from the manager (Activate).

What it means

The panel selects Row-Template, but one of the checks just above failed — the page is missing from the panel's templates directory, differs from the generated one, or Row-Template's own files are damaged. This is a hard failure.

How to fix it

Read the panel … line just above, then run row-template and choose 5 — Activate / Re-apply theme. If Row-Template's files are damaged, run row-template update first.

Seen in:row-template verify
warn

the running ‹panel› does not use the Row-Template page yet; restart the panel.

What it means

The files and settings are correct, but the running panel still uses its previous page. On PasarGuard this means the container was not recreated after .env changed.

How to fix it

Restart the panel (pasarguard restart), then run row-template verify again.

Seen in:row-template verify

Uninstalling

FAIL

refusing to delete ‹install dir›: it does not look like a Row-Template install root.refusing to delete a system path: ‹install dir›

What it means

Before deleting anything, uninstall confirms the directory is a Row-Template installation (it must hold VERSION plus the design or the library) and is not a system path. That check failed, so nothing was deleted.

How to fix it

  1. Check what is in the install directory (/etc/3x-ui/sub_templates/row-template on 3X-UI, /etc/row-template on PasarGuard and Rebecca).
  2. If it is a damaged Row-Template installation, re-run the installer to repair it, then uninstall — or remove it by hand.
Seen in:row-template uninstall
FAIL

refusing to uninstall non-interactively without RT_ASSUME_YES=1.

What it means

Uninstall asks for confirmation, and there is no terminal to ask on. Nothing was removed.

How to fix it

Run RT_ASSUME_YES=1 row-template uninstall to confirm from a script.

Seen in:row-template uninstall
warn

could not clear subThemeDir automatically. In the panel, clear Settings -> Subscription -> Sub Theme Directory.

What it means

Uninstall could not reset the panel's theme directory. Row-Template's files are still removed next, so the panel would point at a directory that no longer exists.

How to fix it

In the panel, empty Panel Settings → Subscription → Sub Theme Directory, save, and restart the panel.

Seen in:row-template uninstall
warn

could not read subThemeDir (sqlite3/DB unavailable). If it points at ‹install dir›, clear it in the panel.

What it means

Without sqlite3 (or the panel database), uninstall cannot tell where the panel's theme directory points, so it leaves it alone.

How to fix it

Open Panel Settings → Subscription. If Sub Theme Directory is /etc/3x-ui/sub_templates/row-template, empty it, save and restart the panel.

Seen in:row-template uninstall
FAIL

uninstall could not complete safely; see the message above. No forced deletion was performed.

What it means

The file removal refused to continue for the reason printed just above. Nothing was force-deleted.

How to fix it

Fix the problem named above, then run row-template uninstall again.

Seen in:row-template uninstall
FAIL

the panel components are missing, so ‹panel› cannot be reverted automatically; run 'row-template update' first.could not revert ‹panel›.uninstall stopped before removing anything; the panel and Row-Template are unchanged.

What it means

On PasarGuard and Rebecca, uninstall first puts the panel back on the page it had before Row-Template, and only then removes Row-Template's files. The panel could not be reverted — the lines above say why — so uninstall stopped before removing anything. Both the panel and Row-Template are exactly as they were.

How to fix it

  1. If the installer's components are missing, run row-template update, then uninstall again.
  2. Otherwise fix the problem named above (for example a damaged .env block, or a panel that could not be restarted) and run row-template uninstall again.
Seen in:row-template uninstall
warn

‹panel›'s selection cannot be changed automatically here.

What it means

Uninstall cannot change the panel's page selection here — on Rebecca because its settings cannot be written (MySQL/MariaDB, or no sqlite3), on PasarGuard because .env could not be read — so it removes Row-Template's files and asks you to switch the page back yourself. Until you do, the panel points at a page that no longer exists.

How to fix it

  1. Rebecca: in the dashboard open Settings → Subscription → Templates and set Subscription page template back to subscription/index.html (Rebecca's own page) or your own page.
  2. PasarGuard: remove the # >>> row-template block from /opt/pasarguard/.env, then run pasarguard restart.
Seen in:row-template uninstall

The command and the manager

FAIL

Row-Template is not installed (run the installer first).Row-Template is not installed; run the installer first.Row-Template is not installed.Row-Template is not installed at ‹install dir›; run the installer first.Row-Template does not appear to be installed at ‹install dir›.

What it means

The command needs an existing installation, and the install directory has no installed design (or no VERSION file).

How to fix it

  1. Install Row-Template first — see Quick start.
  2. If it was installed, re-run the installer to repair it; your configuration is kept.
Seen in:row-template configrow-template updaterow-template rollbackrow-template uninstallmanager
FAIL

unknown command: ‹command›

What it means

row-template does not have that command. The help is printed after this line, and the command exits with status 2.

How to fix it

Use one of config, update, rollback, verify, version, uninstall, menu or help — see the command reference.

Seen in:any command
row-template:

management library not found at ‹path›the install may be damaged; re-run the installer.

What it means

The row-template command is only a launcher, and the management library it loads is missing from the install directory.

How to fix it

Re-run the installer. It repairs the installation in place and keeps your branding and design.

Seen in:any command
FAIL

unexpected error (line ‹line›); no partial change was committed.

What it means

A command failed at a point that has no specific message. Row-Template's changes are staged and swapped atomically, so no half-written file was put in place.

How to fix it

  1. Run row-template verify to check the state.
  2. Run the command again. If it repeats, open an issue with the full output and the line number.
Seen in:any command
warn

Invalid option. Choose a number 0-‹n›.

What it means

A menu received something other than one of its numbers. It asks again.

How to fix it

Type one of the numbers shown in the menu and press Enter.

Seen in:manager
FAIL

could not load panel interfacecould not load panel registrycould not load the transaction engine

What it means

The installer files that come with the management library (panels/, lib/transaction.sh) exist but could not be loaded — they are damaged or were edited. Every row-template command stops here. (If they are missing altogether — as right after 1.1.0's own updater installed a newer release — the command still runs, completes the installation when it can, and verify reports what is missing.)

How to fix it

Re-run the installer to repair the installation; it replaces these files.

Seen in:any command
FAIL

panel registry: the 3xui adapter exists but could not be loadedpanel registry: the pasarguard adapter exists but could not be loadedpanel registry: the rebecca adapter exists but could not be loaded

What it means

One of the panel adapters under panels/ in the install directory exists but could not be loaded — it is damaged or was edited. The command stops here.

How to fix it

Re-run the installer to repair the installation; it replaces these files and keeps your configuration.

Seen in:any command

Internal safety checks

FAIL

What it means

A file Row-Template was about to write or delete is a symbolic link. It never writes through a link, which could redirect a root-owned write to any file on the system. Nothing was written.

How to fix it

Replace the link named in the message with a real file or directory, or remove it, then run the command again. Nothing under the install directory should be a symlink.

Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template uninstallmanager
FAIL

refusing to recursively delete /refusing to recursively delete path outside backups: ‹path›

What it means

A guard that allows recursive deletion only strictly inside the backups folder stopped a delete. This should never happen in normal use; nothing was deleted.

How to fix it

Report it with the full output and what you ran.

Seen in:installerrow-template updatemanager
FAIL

expected checksum is not 64 hex characterscannot checksum missing file: ‹path›

What it means

A checksum file (*.sha256) is damaged or empty, or the file it describes is missing. The file is treated as unverified and is not used.

How to fix it

Run row-template verify to find which, then row-template update to reinstall the files.

Seen in:installerrow-template updaterow-template rollbackrow-template verifymanager
FAIL

checksum mismatch (expected ‹hash›… got ‹hash›…)

What it means

A file does not match its recorded SHA-256 — the first 12 characters of each are shown. The file was changed, damaged or truncated, and is not used. A second line names what was being checked.

How to fix it

  1. For a download: run the command again, or download the release again.
  2. For an installed file: row-template update reinstalls it.
Seen in:installerrow-template updaterow-template rollbackrow-template verifymanager
FAIL

What it means

Before activation changes anything on PasarGuard or Rebecca, it writes a snapshot of the panel's settings to backups.v2/ in the install directory, with a manifest of every file in it. These are the snapshot writer's own checks. A few have a cause on the server — backups.v2/ is a symbolic link, the disk is full, or a snapshot with the same name already exists; the rest guard the snapshot's format and should never appear. In every case activation stops before changing the panel.

How to fix it

  1. Check free space with df -h /etc, and that backups.v2/ in the install directory is a real directory, not a link. Then activate again from the manager.
  2. If a message names a field (state, mechanism, aux, …), report it with the full output.
Seen in:installerrow-template uninstallmanager
FAIL

transaction: RT_ROOT is unset; refusing to locktransaction: refusing a symlinked install root: ‹install dir›transaction: could not create the lock directory: ‹path›transaction: refusing a symlinked lock directory: ‹path›transaction: refusing a symlinked lock file: ‹path›transaction: fd 9 is already open; refusing to reuse the lock descriptortransaction: could not open the lock file: ‹path›transaction: RT_PANEL_STAGE is unset; refusing to clear ittransaction: refusing to clear /transaction: refusing to clear a symlinked stage: ‹path›transaction: unexpected stage path (expected a .panel-stage directory): ‹path›transaction: refusing to clear a stage outside the install root: ‹path›transaction: could not clear the stage: ‹path›

What it means

The activation transaction locks the installation and uses a scratch folder, .panel-stage, inside it. These checks refuse to lock or clear anything through a symbolic link, outside the install directory, or with a missing path. A link or a full disk can cause them; otherwise they should never appear. Activation stops before changing the panel.

How to fix it

  1. Make sure nothing under the install directory is a symbolic link and that the disk has free space, then activate again.
  2. If it repeats, report it with the full output.
Seen in:installermanager
FAIL

transaction: unknown state '‹state›'transaction: invalid transition ‹state› -> ‹state›transaction: unknown panel id '‹panel›' (known: 3xui pasarguard rebecca)transaction: SOURCE is requiredtransaction: panel '‹panel›' is not present on this host (status ‹status›)transaction: panel '‹panel›' cannot be identified in this build (status ‹status›)transaction: detection failed for panel '‹panel›' (status ‹status›)transaction: capabilities are unavailable for panel '‹panel›' (status ‹status›)transaction: panel '‹panel›' reported an unknown capability '‹capability›'transaction: panel '‹panel›' does not declare the required capability '‹capability›'transaction: panel '‹panel›' declares no apply capability (needs one of: file_placement selection_write)transaction: could not capture the state of panel '‹panel›' (status ‹status›)

What it means

The activation transaction's checks before it changes anything: the panel must be present and identified, its adapter must declare the capabilities activation needs, and its current settings must be read for the snapshot. could not capture the state has a cause on the server — the adapter's own message just above names it (for example Rebecca's database cannot be read). The others guard the engine itself. Activation stops, and nothing is changed.

How to fix it

  1. Read the panel … line just above, if there is one, and fix what it names.
  2. Otherwise report it with the full output.
Seen in:installermanager
FAIL

panel pasarguard: malformed selection.statepanel pasarguard: malformed panel metapanel pasarguard: mechanism is '‹mechanism›', expected 'env'panel pasarguard: malformed files recordpanel pasarguard: refusing to restore: the record lists a file this adapter never places: ‹path›panel pasarguard: malformed block recordpanel pasarguard: malformed root recordpanel pasarguard: malformed dir recordpanel rebecca: subscription_page_template cannot have been absent (state '‹state›')panel rebecca: malformed dir_state recordpanel rebecca: malformed selection.statepanel rebecca: malformed panel metapanel rebecca: mechanism is '‹mechanism›', expected 'db'panel rebecca: malformed files recordpanel rebecca: refusing to restore: the record lists a file this adapter never places: ‹path›panel rebecca: malformed root record

What it means

A snapshot of the panel's settings is read back before it is restored, and every record in it must be exactly what the adapter wrote. This one is not — it was edited or damaged, or comes from something other than Row-Template — so it is not restored at all rather than half-restored. The panel is left as it is.

How to fix it

  1. Do not edit files under backups.v2/.
  2. Check the panel's selection yourself (PasarGuard: the row-template block in /opt/pasarguard/.env; Rebecca: Settings → Subscription → Templates), then run row-template verify.
Seen in:installerrow-template uninstallmanager
FAIL

panel pasarguard: SOURCE is requiredpanel pasarguard: refusing a symlinked SOURCEpanel pasarguard: SOURCE is not a regular file: ‹path›panel pasarguard: SOURCE is outside ‹install dir›panel pasarguard: unknown verification mode '‹mode›'panel rebecca: SOURCE is requiredpanel rebecca: refusing a symlinked SOURCEpanel rebecca: SOURCE is not a regular file: ‹path›panel rebecca: SOURCE is outside ‹install dir›panel rebecca: unknown verification mode '‹mode›'panel dispatch: no dispatch arm for implementation '‹adapter›' verb '‹operation›'panel ‹operation›: unknown panel id '‹panel›' (known: 3xui pasarguard rebecca)panel install_template: SOURCE is requiredpanel verify: takes exactly PANEL MODE, got $# argumentspanel verify: MODE must be static|live, got '‹value›'panel restore_state: SNAPSHOT is required

What it means

Argument checks of the panel interface: the page given to an adapter must be a regular file inside the install directory, never a link, and every call must name a known panel and operation. Row-Template's own commands always pass valid arguments, so these should never appear; the operation stops without changing anything.

How to fix it

Report it with the full output and the command you ran.

Seen in:installerrow-template configrow-template updaterow-template rollbackrow-template verifymanagerno command (internal check)
FAIL

panel 3xui: the stored selection contains a newline and cannot be recorded exactlypanel 3xui: SOURCE is requiredpanel 3xui: refusing a symlinked SOURCE: ‹path›panel 3xui: SOURCE is not a regular file: ‹path›panel 3xui: SOURCE is outside the Row-Template root (‹install dir›): ‹path›panel 3xui: unknown verification mode '‹mode›'panel 3xui: the artifact is missing: ‹path›panel 3xui: the artifact failed structural validationpanel 3xui: the recorded checksum is unreadablepanel 3xui: the artifact does not match its recorded checksumpanel 3xui: cannot read the panel selectionpanel 3xui: subThemeDir is '‹value›', expected '‹install dir›'panel 3xui: the snapshot's selection.state is malformedpanel 3xui: selection.state must be absent|empty|present, got '‹state›'panel 3xui: the snapshot's panel meta is malformedpanel 3xui: mechanism is '‹mechanism›', expected 'db'panel 3xui: was_running must be 0|1, got '‹value›'panel 3xui: the snapshot's files record is malformedpanel 3xui: refusing to restore: this panel places no file, but the snapshot lists onepanel 3xui: state=present but the selection value is unreadablepanel 3xui: cannot read the selection back after restoringpanel 3xui: after restoring, the selection state is '‹state›', expected '‹state›'panel 3xui: cannot read the selection value back after restoringpanel 3xui: after restoring, subThemeDir is not the recorded value

What it means

Checks inside the 3X-UI adapter of the panel interface. In 1.3.0 the row-template commands set up 3X-UI directly — they write subThemeDir themselves, exactly as before — and do not go through this adapter, so these messages are not printed by any command. They are listed here because they are in the installer's source.

How to fix it

If you ever see one, report it with the full output and the command you ran.

Seen in:no command (internal check)
Edit this page on GitHubApplies to Row-Template 1.4.0
Esc
↑↓ to navigate↵ to selectEsc to close