This guide helps you identify, diagnose, and resolve common issues related to the Celigo on-premise agent. It serves as a reference for system administrators, support engineers, and developers who manage or rely on connections that use an on-premise agent to integrate on-premise systems with cloud applications.
When to use this guide:
- The on-premise agent appears offline or unresponsive in integrator.io.
- Flows using connections that use an on-premise agent fail or stall unexpectedly.
- You're installing, upgrading, or migrating the agent and encounter errors.
- You need to verify agent configuration, logs, network access, or token issues.
- You want to perform preventive checks or validate agent readiness after environment changes, such as an OS upgrade or firewall rule updates.
- A connection that uses an agent group fails, or you can't create, change, or delete an agent group.
Legacy production and sandbox licenses
In legacy Production and Sandbox environments, changes in one environment affect both environments. The Production and Sandbox environments share the same underlying resources. Any resource you create, edit, or delete in one environment is immediately reflected in the other.
This includes connections, imports, exports, flows, scripts, and API tokens. Use caution when editing resources in either environment.
This behavior doesn't apply to accounts on the multi-environment license, where each environment maintains its own isolated resources.
Migrations from the legacy Production/Sandbox license to the new multi-environment license are underway. Your account has not migrated to the new multi-environment license if you can toggle between environments.
Follow this checklist to ensure that the on-premise agent's base configurations are correct. If you've completed the checklist and your agent isn't working as expected, continue to follow the troubleshooting steps in this article.
-
Confirm that the agent is running locally Windows:
- Press
Win+R, typeservices.msc, and press Enter. - Locate Celigo Agent in the list.
- Validate that the agent's Status is 'Running' and the Startup type is 'Automatic'.
– OR –
- Navigate to Task Manager > Processes.
- Verify that
agent-windows.exeis running.
Linux: Run the following command:
systemctl status celigo-agent. The status should be 'Active (running)'. - Press
-
Check your network connectivity
- Test your network's outbound access to
https://api.integrator.iousing the following curl command:curl -I https://api.integrator.io. - Confirm that your firewall allows outbound port 443 (HTTPS). If your firewall is behind a proxy:
- Windows: Check Internet Options > Connections > LAN settings.
-
Linux: Check the following environment variables:
HTTP_PROXYandHTTPS_PROXY
- Test your network's outbound access to
-
Verify the agent's token configuration: You must verify that the agent's token in your on-premise server and integrator.io are identical. Windows:
- In your Windows server, navigate to
C:\Users\<user>\AppData\Roaming\Agent\and open the Settings file. - Note the agent's token.
- In your browser, navigate to integrator.io and sign in.
- Go to Resources, and then select On-premise agents. Select Show token for the agent.
- Compare the agent tokens.
Linux:
- Execute the
sudo cat /root/.config/agent/Settingscommand. - Search the Settings file for the agent's token.
- In your browser, navigate to integrator.io and sign in.
- Go to Resources, and then select On-premise agents. Select Show token for the agent.
- Compare the agent tokens.
- In your Windows server, navigate to
-
Confirm your agent's version Windows:
- In your server, navigate to Control Panel > Programs > Programs and Features.
- Find Celigo Agent in the list.
-
Your agent version must be 4.6.0 or later. If you haven't updated your agent, it isn't receiving automatic updates, which may be causing your issues.
Exception: Celigo has ended support for users running Windows Server 2012 R2 with the Celigo on-premise agent. If your server is on this Windows version, you must download agent version 4.3.0. Failure to do so will trigger automatic updates that will break your on-premise agent configuration and cause your flows to fail. Note that version 4.3.0 does not support automatic updates since Celigo has ended support for Windows Server 2012 R2.
Linux: If you're using the packaged version, run:
sudo find / -type f -name "*.log" 2>/dev/null | sudo xargs grep -i "latest version" 2>/dev/null. If not, check the version in the Linux agent logs by running:journalctl -u celigoagent.service -n 1000 -f. -
Validate connection settings In integrator.io, open a connection that uses the agent and verify the following:
- Your connection is using the correct agent.
- The Base URI is reachable from the agent host (for example,
localhostor the target system's IP address).
-
Review logs (optional for early signs) Follow the steps below to inspect the agent logs in either Windows or Linux operating systems. If the logs are not available, check for missing or empty log files. Windows:
- Open the Celigo Agent in your Windows server.
- Select View logs.
- Search for:
- Connection errors
- Authentication failures
- Unexpected restarts or shutdowns
– OR –
- Navigate to
C:\Users\<user>\AppData\Roaming\Agent\. - Search for
server-{{Current Date timestamp}}and open the corresponding file. - In the logs, search for:
- Connection errors
- Authentication failures
- Unexpected restarts or shutdowns
Linux:
- Open your terminal.
- Run
journalctl -u celigoagent.service -f. - Review the logs for:
- Connection errors
- Authentication failures
- Unexpected restarts or shutdowns
To review a large number of older logs, use
journalctl -u celigoagent.service -n 1000 -f. You can increase and decrease the number "1000" to retrieve more or less log data. -
Verify system resources: Ensure the host meets requirements.
- 2–4 GB RAM minimum
- 2 CPU cores
- 64-bit OS
Windows:
- Navigate to Task Manager > Performance.
- Check the agent's CPU and RAM usage to determine if it's performance is degraded.
- Make sure no other heavy processes are affecting the agent.
Linux:
- Run the
top free -mcommand to verify the agent's CPU and RAM usage.
Once these checks are complete, if the issue persists, move on to targeted troubleshooting steps (for example, connection errors, failed flow execution, network misconfigurations).
In some cases, deleting the existing agent and installing a new one can solve an unknown issue.
Delete the existing agent and install a new one:
- Uninstall the agent as a service through the Task Manager.
- Press
Win + R, typeservices.msc, and press Enter. - Locate Celigo Agent in the list and stop the service.
- Navigate to the agent UI and uninstall the service.
- Press
- Open the Task Manager and end all running agent-specific tasks.
- Open the Control Panel and uninstall the agent.
- Delete all existing agent installers and updaters from the User folder.
- Install a new agent using the steps in Install and configure the Windows on-premise agent.
Delete the existing agent and install a new one:
Important
The commands must be executed in the listed order.
- Stop the agent:
sudo systemctl stop celigoagent.service - Remove the service:
sudo rm /etc/systemd/system/celigo-agent.service - Delete old agent files:
rm -rf /path/to/old-agent-folder - Install a new agent using the steps in Install and configure the Linux on-premise agent.
There are some common errors that can be fixed without assistance from the Celigo Support team.
An agent usually goes offline because it isn't running, its token doesn't match, or a firewall or proxy is blocking it. The agents list shows the reason an agent went offline, so start with the check that matches it.
- Unauthorized — integrator.io rejected the agent's token. Verify the agent's token configuration in the on-premise agent configuration checklist.
- Unreachable — integrator.io couldn't reach the agent. Confirm that the agent is running locally and check your network connectivity in the on-premise agent configuration checklist.
- No recent heartbeat — The agent stopped sending heartbeats. See On-premise agent heartbeat failure.
If these are all working as expected, check your logs for any of the common errors and solutions listed below. If none of the errors appear, contact Celigo Support.
Issue: In some cases, the agent won't automatically upgrade when a new version is released.
Root cause and Solution: This occurs if the agent isn't running as a service or if you're missing administrator privileges (Windows only).
Exception
Celigo has ended support for users running Windows Server 2012 R2 with the Celigo on-premise agent. If your server is on this Windows version, you must download agent version 4.3.0. Failure to do so will trigger automatic updates that will break your on-premise agent configuration and cause your flows to fail. Note that version 4.3.0 does not support automatic updates since Celigo has ended support for Windows Server 2012 R2.
Issue: Can't find logs or the log files are empty.
Root cause: You may have an agent running with incorrect permissions, or a misconfigured or inaccessible log path.
Troubleshooting: Determine if the log files exist.
Windows:
- Navigate to
C:\Users\<user>\AppData\Roaming\Agent\. - Search for
server-{{Current Date timestamp}}. - If the logs are missing entirely, delete and reinstall the agent.
Linux:
Logs are created in the /root/.config/agent/ folder of your Linux machine.
- Use this command to determine if log files exist in your root directory:
sudo find / -type f -name "*.log" 2>/dev/null - If the logs are missing entirely, delete and reinstall the agent.
Issue: You may encounter the following pop-up error dialog when using the Celigo agent, particularly after an automatic update.
Error: Failed to uninstall old application files. Please try running the installer again.: 2
Root cause: This issue is typically triggered when the Windows system PATH environment variable is in a corrupted or inconsistent state following the agent's auto-update process.
Solution: Restart the system. A full Windows restart often resolves the issue, as the operating system will attempt to automatically repair or reload critical environment variables (such as the PATH variable) during startup.
Symptom: The Celigo on-premise agent service is not running in the Services application.
Cause: The on-premise agent can be executed in three modes:
- Through the agent UI – When launched directly from the desktop, the agent runs with a visible user interface.
- Run in Background – When this option is enabled, the UI is hidden, but the agent continues running in the background. It can be verified via Task Manager.
- As a Windows Service – The agent can be installed and run as a Windows service.
Warning
Only one instance of the agent can run at a time. Once the service is installed through the UI, it is important to close the UI completely before attempting to start the agent.
If the service fails to start or stops unexpectedly, determine if the agent is running in Background mode or via the UI. Ensure that the agent is not running and terminate running instances before restarting the service.
In some cases, the agent's heartbeat could fail during normal operations. Heartbeats are sent periodically (approximately every 60 seconds). Long gaps between heartbeat logs could indicate the agent stopped or lost connectivity. There are several potential causes for failed heartbeats:
- The agent process isn't running
- You have an expired or invalid access token
- There are network connectivity issues
- A firewall or proxy is blocking the agent
- The agent crashed or hung
- There's a time skew between the agent and the server
To determine if your agent is functioning properly, check your logs (Windows, Linux). Use a text editor or command-line tool (grep, findstr) to find success or error logs.
A successful heartbeat can appear with any of the following success log messages:
-
[INFO] Heartbeat sent successfully -
[INFO] Agent heartbeat acknowledged by integrator.io
A failed heartbeat can appear with any of the following error log messages:
-
[ERROR] Failed to send heartbeat: Connection timeout -
[ERROR] Unable to reach https://api.integrator.io -
[ERROR] Invalid token while sending heartbeat -
[ERROR] Socket timeout during heartbeat -
level=error, logName=heartbeatFailed, err=Error: getaddrinfo ENOTFOUND api.integrator.io at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'api.integrator.io' }
If you find any of the above errors, check the logs again to determine if the agent was able to connect to a tunnel. Successful tunnel messages usually look as follows:
-
2025-05-06T12:08:22.172Z: level=info, logName=tunnelCreated -
2025-05-06T12:08:23.346Z: level=info, logName=tunnelReadyForUse
If your log isn't able to connect to a tunnel, it could mean that the server was not able to establish a connection to the Internet. Check for the following entries in the logs:
-
level=error -
logName=noInternet
If noInternet appears, inspect nearby log entries for: heartbeatFailed. If both noInternet and heartbeatFailed are logged around the same time, it strongly suggests a network connectivity issue on your machine or server. There are generally two causes for network connectivity issues:
- Temporary Network Glitch: Your server may experience a brief loss of internet connectivity — lasting anywhere from a few seconds to a minute. These are typically self-resolving.
-
Instance Resource Limitations (for example, AWS EC2): If you're using a low-tier EC2 instance such as
t2.micro,t3.micro, ort3.small, it may be hitting:- Network bandwidth limits
- Packet per second (PPS) caps
- CPU credit exhaustion
Sample logs:
level=error, logName=heartbeatFailed, err=Error: connect ETIMEDOUT 72.44.45.92:443
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
errno: -4039,
code: 'ETIMEDOUT',
syscall: 'connect',
address: '72.44.45.92',
port: 443
}
level=error, logName=requestTunnel, requesting tunnel failed
error={"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.integrator.io"}
You can expect to see this log error approximately three times before the agent connects to the tunnel, since sometimes the agent tries to switch ports to find a free one. It may be an issue with Celigo's infrastructure if it's happening often and and in continuous intervals, leading to the agent appearing Offline (red) in integrator.io. There are several other potential causes:
- Temporary network instability: Brief network hiccups could cause occasional connection failures.
- Server load fluctuations: If the server experiences periodic high load, it might occasionally reject new connections or fail to bind ports.
- Stale connections are not being cleared quickly: If ports from closed connections aren't freed right away, the agent can occasionally try a stale port.
- Race conditions leading to stale ports assignment.
To determine if your agent is functioning properly, check your logs (Windows, Linux). Use a text editor or command-line tool (grep, findstr) to find the following log:
2025-05-01T22:59:50.176Z: level=error, logName=forwardInError, code=undefined, message=Unable to bind to 0.0.0.0:7017, stack=Error:
If you see the logged error, contact Celigo Support.
If you are using on-premise JDBC connections, make sure JDK 17 is installed.
For Oracle database on-premise connections, the Oracle instant client must be installed on the user's computer.
Agent group errors and solutions
An agent group lets a connection use up to three on-premise agents, so the connection keeps running when one agent goes offline. These are the issues you can meet when you use agent groups. For how agent groups work, see On-premise agent overview.
No healthy agents are available in an agent group
Symptom — Flow runs or the connection test fail with this error: No healthy agents are available in agent group {name}. Check agent status or add another member.
Cause — No agent in the group is available. Every agent is offline, has gone 60 seconds without a heartbeat, or failed with a connection error. A group with one agent shows this error whenever that agent is offline.
Resolution
- Go to Resources, and then select On-premise agents.
- In the agents table, find the agents whose Group column shows the group, and check each one's Status. The agents list can take up to 5 minutes to show an agent as offline, so an agent can appear online while runs fail.
- Bring at least one agent back online. For each offline agent, follow Offline (red) status in integrator.io.
- Retry the failed flow runs.
To keep this from recurring, add a second agent on a separate machine. See Set up an agent group.
Agent group doesn't exist or has been deleted
Symptom — Flow runs or the connection test fail with this error: Agent group {id} does not exist or has been deleted.
Cause — The connection still points to an agent group that was deleted.
Resolution — Open the connection and select a different agent group or a single agent. See Set up an agent group. If the group was deleted by mistake, restore it from the recycle bin.
Can't delete an agent group or an agent
Symptom — integrator.io won't delete an agent group or an agent and shows one of these messages:
This agent group is used by one or more connections and cannot be deleted.This agent is a member of an agent group and cannot be deleted. Remove it from the group first.
Cause — A connection still uses the group, or the agent still belongs to a group.
Resolution
- To delete a group — Change every connection that uses the group to a different group or a single agent, and then delete the group.
- To delete an agent — Remove the agent from every group it belongs to, and then delete the agent.
For the steps, see Set up an agent group.
Can't add an agent to an agent group
Symptom — integrator.io won't save an agent group after you add an agent.
Cause and resolution
- The group already has three agents — A group can have up to three agents. Remove an agent before you add another.
- The agent is already in the group — Each agent can appear in a group only once.
- The agent belongs to a different environment — Every agent in a group must belong to the group's environment. Install and register an agent in this environment instead.
- The agent version is too old — An agent must be on version 6.0 or later to join a group. Update the agent, and then add it again. See Update your on-premise agent.
Agent shows as online but doesn't receive work
Symptom — The agents list shows an agent in a group as online, but flow runs go to another agent in the group.
Cause — This is expected in these cases:
- An agent earlier in the group's list is available. The first available agent in the list handles all of the group's work, and work isn't spread across agents.
- integrator.io stopped sending the agent new work, but the agents list hasn't caught up yet. It can take up to 5 minutes. For when integrator.io skips an agent, see How failover works.
Resolution — Check the agent's last heartbeat on the agents list. If the agent stopped sending heartbeats, see On-premise agent heartbeat failure. To change which agent handles work first, see Set up an agent group.
Duplicate records after a failover
Symptom — A destination app has duplicate records that were created around the time an agent in a group went offline.
Cause — When an agent stops partway through an import, the next agent can send some records from that import a second time.
Resolution — Remove or merge the duplicate records in the destination app. To prevent duplicates, design imports to update a matching record instead of always creating a new one.
In some cases, you'll need to use the agent logs to search for uncaught exceptions or other errors. An uncaught exception is an error that occurs during program execution but is not handled by any try/catch or equivalent exception-handling mechanism in the code. As a result, the program typically terminates abnormally, and a stack trace is often printed or logged to indicate where the error occurred. Uncaught exceptions can occur due to:
- File descriptor or memory limits
- Out of Memory (OOM): A condition where a system runs out of memory resources, leading to failures in executing processes. This situation often results in the operating system terminating processes to reclaim memory, which can cause unexpected crashes or degraded performance in applications. OOM conditions are typically associated with memory leaks or unbounded resource retention, which can impact system stability.
- Missing environment variables
Sometimes the error isn't found in the agent's logs. In those cases, you'll need to analyze your system-level logs.
A stack trace is a report that provides information about the active stack frames at a specific point in time during the execution of a program. It is typically generated when an exception or error occurs and helps developers understand the sequence of function or method calls that led to the failure. Stack traces will often show:
- The file name & line number of the source.
- The function or method involved.
- Whether it's during: startup, token validation, request forwarding, etc.
All of this data can be used to resolve your errors or sent to Celigo Support if you are unable to resolve them on your own. You can find stack trace errors easily in either Windows or Linux using the steps below:
To find your agent's logs and analyze uncaught exceptions:
- Navigate to
C:\Users\<YourUsername>\AppData\Roaming\Agent\. - Open the log folder.
- In the Settings file, find
uncaughtExceptionHappenedOnServiceand determine if it's set toTrue. - Open the
uncaughtExceptionfile.
- In the Settings file, find
- Search for common keywords, preferably using a log viewer or CLI tool. You can also use commands if you don't want to use your native search feature. Command:
Select-String -Path "C:\Users\<User>\AppData\Roaming\Agent\logs\agent.log" -Pattern "exception","error","uncaught","stack"Common keywords:-
Uncaught Exception -
UnhandledPromiseRejection -
TypeError -
ReferenceError -
SocketTimeoutException - Stack traces
-
To check for system-level triggers, use the Windows Event Viewer to search for:
- System logs:
eventvwr.msc> Windows Logs > System - Application logs
- Security logs
You can also use PowerShell commands like: Get-EventLog -LogName System
Logs are created in the /root/.config/agent/ folder. To find your agent's logs and analyze uncaught exceptions:
- Use this command to determine if log files exist in your root directory:
sudo find / -type f -name "*.log" 2>/dev/null - If the files exist, use this command to open the logs:
~/.agent/logs/– OR – Open the files directly from the agent directory. - Open the Settings file by executing
sudo cat /root/.config/agent/Settings.- Find
uncaughtExceptionHappenedOnServiceand determine if it's set toTrue.
- Find
- Search the log file for common keywords, preferably using a log viewer or CLI tool. You can also use commands if you don't want to use your native search feature. Command:
sudo find / -type f -name "server-{{Current Date timestamp}}.log" -exec grep -iE 'exception|error|uncaught|stack' {} + 2>/dev/nullExample command:sudo find / -type f -name "server-2025-07-29.log" -exec grep -iE 'exception|error|uncaught|stack' {} + 2>/dev/nullCommon keywords:-
Uncaught Exception -
UnhandledPromiseRejection -
TypeError -
ReferenceError -
SocketTimeoutException - Stack traces
-
- In the returned search list, find the following log entries:
-
uncaughtException
-
To check for system-level triggers, execute any of the following commands: /var/log/syslog, /var/log/messages, dmesg.
After uninstalling the agent service, you may get an uncaught exception error and your agent may crash. The error will include Error: EPERM: operation not permitted, unlink.
To uninstall the agent service properly after receiving this error, select Uninstall service again in the agent UI.
You can create a support ticket at any time. Create one especially if you run into any of the following:
- An uncaught exception isn't self-explanatory.
- The agent crashes immediately after start.
- The issue is reproducible but not logged clearly.
Before you contact Celigo Support, gather:
- Agent log files
- If there is an uncaught exception, retrieve the
uncaughtExceptionfile. - Agent version
- OS details
- Flow or connection details that trigger the error
How many instances of an agent can I set up?
You can run only one instance of the agent on a machine. However, the same agent can be used to allow integrator.io to talk to multiple databases and applications on the same network as the agent.
Does the on-premise agent need to be installed on the same machine as the system to be integrated?
Typically, agents can be installed on any machine within the same network as the server running the system to be integrated. However, there can be exceptions such as when setting up a JDBC connection.
Which IP addresses does the on-premise agent use to communicate with integrator.io?
The agent uses several IP addresses to communicate with integrator.io. If your firewall limits outbound traffic to specific IP addresses, add the integrator.io IP addresses and the agent-extension server IP addresses for your region to your allow list. See Add integrator.io IPs to your allow list.
How can I reopen the on-premise agent window and make changes, after it's set to run in the background?
Most agent installations choose to Run in background, in which case the program, On-Premise Agent – integrator.io, is not visible in the Windows taskbar. To restore the agent user interface and make changes or view activity logs, double-click the program's shortcut.
How can I keep my on-premise agent from stopping unexpectedly?
To stop your agent from closing unexpectedly, use a small and dedicated Windows server, then run the agent in the background. Don't use that machine for anything else.
Will there be any difference to my entitlements when I move from current setup to multi-environments?
Resources are not shared between environments. A new agent needs to be configured for each non-production environment after migration.
It depends on which environment setup your account uses.
Legacy Production/Sandbox: If your account is on the legacy Production/Sandbox license, resources — including on-premise agents — are shared between your Production and Sandbox environments. You can use the same agent for connections in both.
Multi-environment: If your account has migrated to the multi-environment setup, environments are fully isolated by design and resources cannot be shared across them. The same applies to agent groups: every agent in a group must belong to the group's environment. Each environment — Production, Dev, Sandbox, or any other non-production environment — requires its own agent instance, created separately under Resources > On-premise agents. Each instance generates its own unique token and must be installed independently.
If you're migrating from a legacy Sandbox to multi-environment: Your existing agent will not carry over to the new non-production environment. After migration, you'll need to create and configure a new agent for each non-production environment.