Quick checks
isConnected: False: the agent cannot talk to Omnilinker, or Omnilinker rejects it.isErpConnected: False: the agent cannot read the ERP database.pendinggrowing in the outbox stats: changes are detected but not delivered.
Common problems
Where are the logs?
Where are the logs?
C:\ProgramData\Omnilinker\ErpSync\logs. Everyone signed in to the computer can read it. To
follow today’s file:setup.log in the same folder.
See Setup finished, but there is no service.Sync log. The agent also keeps a short log of sync events in its local database. Read it in the tray app with
View Logs, or with GET /api/sync/logs on the local API.The agent does not write its own messages to the Windows event log. Windows records service start failures in
the System log (see the next entry).The service does not start
The service does not start
Get-Service OmnilinkerErpSyncService shows Stopped, or the service stops shortly after it starts. The tray
app shows Disconnected in its tooltip.The service is set to restart itself after a failure (after 5, 10 and 30 seconds), so a service that keeps
stopping has a problem that a restart does not fix.- Open Event Viewer > Windows Logs > System and look for errors from the source Service Control
Manager that name Omnilinker ERP Sync (Omnilinker ERP Sync Service on an installation made with
install-service.ps1). For a crash, also check Windows Logs > Application for .NET Runtime or Application Error entries. - Open the newest service log file (see Where are the logs?). If the service started far enough to log, the
last lines say why it stopped. A fatal start-up error ends with
Omnilinker ERP Sync Service terminated unexpectedly.
- Logon failure. Someone changed the service to run under another account, and its password changed. The System log says the service did not start due to a logon failure. Open Services, open Omnilinker ERP Sync > Log On, select Local System account and click OK. The agent is designed to run as Local System.
- Port 5555 in use. See The local API port is already in use.
-
Broken
appsettings.json. If you edited it, check that it is still valid JSON. From the install folder:An error means the file is not valid. Fix it or restore it from the original package.
Setup finished, but there is no service
Setup finished, but there is no service
Get-Service OmnilinkerErpSyncService finds no service, or the tray app does not start at
sign-in. Setup never fails because of one step; it writes what it could not do to
%ProgramData%\Omnilinker\ErpSync\logs\setup.log:setup.log at all, setup could not even create the folder. Run it again from PowerShell as
Administrator.The tray app cannot reach the service
The tray app cannot reach the service
- Check that the service is running:
Get-Service OmnilinkerErpSyncService. If it is not, see The service does not start. - If the tray app shows “Something other than the Omnilinker service answered. Restart the PC; if it happens again, contact support.”, another program answered on the agent’s pipe. The tray app talks only to the Windows service. Restart the computer.
The tray app says Only an administrator of this PC can do that.
The tray app says Only an administrator of this PC can do that.
The local API answers 403 Forbidden
The local API answers 403 Forbidden
403 Forbidden with an empty body from http://localhost:5555/api/....- Add the header
X-Omnilinker-Local: 1to every request. See Local API. - Call the API as
localhost,127.0.0.1or[::1], not by the computer’s name. - From a web page, only Omnilinker’s own pages may call the API.
The local API port is already in use
The local API port is already in use
Failed to bind to address http://127.0.0.1:5555: address already in use.Another program uses port 5555 on the agent computer. Find it:LocalApiPort in appsettings.json, but the web app’s Local
Service tab and the tray app’s fallback connection keep using port 5555 and will not reach the agent. Free
port 5555 if you can. See the configuration reference.The Agent tab says Offline
The Agent tab says Offline
- Is the service running? See The service does not start.
- Can the agent reach Omnilinker? See The agent cannot reach omnilinker.pl.
- Is the connection active? On ERP Integration > Connections, the connection’s Status must be Active. Omnilinker rejects heartbeats and changes for an inactive connection. To switch it on, click Activate in the row’s Actions menu.
- Is the API key still valid? See The API key is rejected.
- Is the agent too old? See Omnilinker rejects the agent version.
The API key is rejected
The API key is rejected
- In Omnilinker, open ERP Integration > Connections, open the row’s Actions menu and click Generate Agent Key. Copy the key. It is shown only once. See Create a connection.
- On the agent computer, open the tray app’s Settings…, paste the key under Cloud Connection, click Validate, then Save. See Tray app.
- “API key doesn’t have required permissions. Grant ERP Integration permissions to this API key.” The key is not an agent key. Use a key from Generate Agent Key, not one from the Administration API keys page.
- “This agent key is not authorized for the requested ERP connection.” The key belongs to a different connection. Select the right connection in the tray app’s settings, or generate a key on this connection.
Status: Forbidden in the first message above is not a key problem. See Omnilinker rejects the agent version
and Changes are not arriving.Omnilinker rejects the agent version
Omnilinker rejects the agent version
- In Omnilinker, the connection’s Agent tab turns Offline and Last heartbeat stops moving. Agent version still shows your old version.
- In the agent’s log,
Heartbeat returned Forbidden, andCloud API returned Forbidden for batch publish:followed by the message above. The configuration check also logsAuthentication failed ... Status: Forbidden, even though the key is fine. - The outbox
pendingcount grows, and laterfailedgrows too.
AutoUpdateEnabled) and that
the agent computer can reach releases.omnilinker.com, or run the new installer by hand.Do it promptly. Each rejected send counts as a failed attempt, and changes that fail every attempt are not sent
again (see Changes are not arriving).The agent cannot reach omnilinker.pl
The agent cannot reach omnilinker.pl
isConnected: False. The tray app’s cloud connection test fails with Cloud connection failed:
followed by the reason, or Cloud returned status: followed by an HTTP status.-
Test the connection from the agent computer:
TcpTestSucceeded : Falsemeans a firewall or the network blocks it. The agent needs outbound HTTPS toomnilinker.plon port 443. See Requirements. -
If your network requires a proxy, set it for the machine with the
HTTPS_PROXYenvironment variable, then restart the service. The service runs as Local System, so it does not use the proxy settings of the person signed in: -
Check the API URL in the tray app’s Settings…. It should be
https://omnilinker.pl.
The agent cannot connect to the ERP database
The agent cannot connect to the ERP database
isErpConnected: False, or the tray app’s Test Connection shows SQL error: followed by
SQL Server’s message.Test the database settings in the tray app: Settings… > Database Connection > Test Connection. The
test runs inside the Windows service, with the service’s account, so it behaves the same way as the agent.The server cannot be found. SQL Server’s message starts with “A network-related or instance-specific error
occurred while establishing a connection to SQL Server”.-
Check Server / Host. For a named instance use
server\instance, for exampleerp-server\WAPRO. -
Check that the agent computer can reach the SQL Server port:
Use your instance’s port if it is not 1433. A named instance with a dynamic port also needs the SQL Server Browser service and UDP port 1434.
- SQL Server authentication (a Username is filled in): check the username and password, and that SQL Server allows SQL Server authentication (mixed mode).
- Windows authentication (Username left empty): the agent logs in as the service’s account, Local
System, not as you. The user named in the message is that account: the agent computer’s domain account
(
DOMAIN\COMPUTER$) on a remote SQL Server, orNT AUTHORITY\SYSTEMon SQL Server on the same computer. Give that account a login and read access to the ERP database, or use SQL Server authentication. See Requirements. - Check that the login can open the database named in Database Name.
Changes are not arriving (the outbox is backing up)
Changes are not arriving (the outbox is backing up)
GET /api/sync/outbox/stats shows pending
growing, or failed above zero. The tray menu shows Queue: <n> pending | <n> failed.How the agent retries. The agent keeps every change in a local outbox and sends it in batches every few
seconds. When a send fails, for any reason, the change stays pending and is tried again in the next cycle.
After 5 failed attempts (MaxRetryAttempts in appsettings.json) it is marked failed and the agent does not
send it again.Find the reason in the agent’s log file. Look for:The agent is online but nothing syncs
The agent is online but nothing syncs
- Is syncing paused? The tray icon is amber and the tooltip says Paused, or the status shows
state: 2. Select Resume Sync in the tray menu. See Tray app. - Is the entity type configured? On the connection’s Sync Configuration tab, each entity type you want to sync needs a configuration that is Enabled. If the tab says “No sync configurations found. Add one to enable synchronization.”, add one. See Sync configuration.
- Is change detection on? With hash scan change detection (the default), the agent finds changes only with hash checks. Open the Product sync configuration, expand Advanced Timing Settings and make sure Hash-Based Change Detection is Enabled. In the tray menu, Hash Check: Disabled means it is off.
- Has the agent loaded its configuration? If
lastErrorisWaiting for cloud configuration, the agent has not yet downloaded its settings from Omnilinker. See The API key is rejected and The agent cannot reach omnilinker.pl. - Are the ERP credentials set? If
lastErrorisERP credentials not configured, or the tray app’s ERP test says “No ERP credentials configured. Run setup wizard to configure.”, complete the setup wizard. - Has anything changed in the ERP? The agent sends only changes. The first hash check after installation compares every record; later ones find only what changed since. To check now, select Trigger Hash Check in the tray menu.
Changes arrive as Skipped
Changes arrive as Skipped
ErpIntegration:Skip:ProductNotMapped. Omnilinker received the change but did not apply it on purpose.Most of these mean something is not mapped yet:ErpIntegration:Skip:PriceLevelNotMappedorErpIntegration:Skip:WarehouseNotMapped: map the ERP price level or warehouse on the connection’s Mappings tab. See Reference items.ErpIntegration:Skip:ProductNotMapped: the price, stock or bundle belongs to a product that is not linked to a catalog product yet. Make sure products sync first. See Field mappings.
Test Connection in the web app always fails
Test Connection in the web app always fails
Trigger Sync or Retry in the web app does nothing
Trigger Sync or Retry in the web app does nothing
POST /api/sync/now on the local API. See also Monitoring.The Local Service tab says Local Sync Service Not Available
The Local Service tab says Local Sync Service Not Available
http://localhost:5555 from your browser. It
works only in a browser on the agent computer, with the agent on port 5555. On any other computer this message
is expected. Use the Agent tab instead. See Monitoring.Get help
If none of this solves the problem, contact Omnilinker support. Include:- The connection name, and what you see on its Agent tab.
- The agent’s version, from the Agent tab or the
versionfield ofGET /api/sync/status. - The output of the quick checks at the top of this page.
- The service log files from the time the problem started.