Root Cause Breakdown
In the eisy-ui log, the installer executes the following sequence:
Empty Branch Argument:
When pulling your repository ([https://github.com/awysocki/ACInfinity](https://github.com/awysocki/ACInfinity)), PG3 reads "branch": "null" from the node server configuration. It tries to execute:
Bash
git checkout -b
Because no branch string was passed, Git fails.
Branch Auto-Detection Fallback:
PG3 then queries Git remote HEAD and detects Found branch [main].
String Concatenation Bug in eisy-ui:
Once main is detected dynamically, eisy-ui's pg3_helper attempts to register the service. Instead of referencing slot 25 (plugin_25), the script incorrectly concatenates the slot prefix with the auto-detected branch name, attempting to query:
Plaintext
Unable to get info for plugin_2main
Because plugin_2main is an invalid service target, pg3.ops fails with exit code -5 and rolls back the installation. (Compare this to your PMatter plugin log, where "branch": "main" was explicitly set beforehand, allowing plugin_27 to install cleanly without running auto-detection).
How to Fix It in Your Git Project & Store Submission
1. Explicitly Define the Branch in Store Submission
In the PG3 Node Server Store Developer Portal (where you submitted the ACInfinity NodeServer URL):
Ensure the Branch field is explicitly set to main (or master) rather than left empty or null.
2. Verify Your Repository File Structure
Ensure the root of your ACInfinity repository includes all required PG3/eisy metadata and entry files:
File / Folder
Purpose
Requirement
server.json (or polyglot.json)
Node Server metadata definition
Root directory. Must specify "executable": "acinf_main.py" and "type": "python3".
install.sh
Shell script for dependency installation
Must be at repo root and executable (chmod +x install.sh).
acinf_main.py
Main script entry point
Must match the executable field.
profile/
IoX Node definitions
Must contain nodedef/, editor/, and nls/ subdirectories.
Example server.json Root Template
If you do not have a server.json in your repository root, add one:
JSON
{
"name": "ACInfinity",
"type": "python3",
"executable": "acinf_main.py",
"branch": "main"
}
Quick Workaround on the eisy Controller
In the PG3 / eisy UI web interface, go to Node Servers $\rightarrow$ ACInfinity $\rightarrow$ Configuration/Details, manually type main into the Branch field, and save changes before triggering a re-install.