Topic: Syspro 8 Connector Gateway API Service
The Syspro 8 Connector Gateway API Service is a Windows service that runs alongside a Syspro on-premise installation and connects it to Syspro’s cloud services. It picks up notifications and requests from the cloud, translates them into calls against the local Syspro business objects, and sends responses and status back to the cloud.
Support and administrators typically find this service under its Windows service name, and see its activity logged under the SYSPROCGS event source.
Exploring
The Syspro 8 Connector Gateway API Service is used by any site with cloud-connected Syspro features enabled, for example cloud payments or cloud tax. It sits between three components:
-
The local Syspro system: it calls Syspro’s WCF business object server to run business logic (payments, tax, company and session data) against the customer’s own Syspro data.
-
Syspro’s cloud services: it calls cloud APIs for payments, tax, and admin functions, and receives push notifications from the cloud over Azure Service Bus.
-
The Syspro Application Gateway: a module and configuration inside Syspro that identifies which cloud endpoints the connector should use, and supplies the routing information the service requires to reach the cloud.
-
The Syspro 8 Connector Gateway API Service does not replace any of these components. It is the bridge that keeps them connected to each other.
-
If the service stops or becomes unhealthy, the cloud-connected features stop working, even though the rest of Syspro continues to run normally.
-
-
A single, centralized point through which on-premise Syspro exchanges data with the cloud, so individual modules do not need to manage their own cloud connectivity.
-
Automatic retries when a dependency (WCF, cloud, or the service bus) is not yet ready, so a transient outage at startup does not require manual intervention.
-
Health and status information visible through Windows services and the Windows Event Log, allowing support teams to check state without developer tools.
The default location for this service is:
Program Files > Syspro > Syspro 8 Connector Gateway API Service
The cloud API that is used for tenant lookup, credential and signature exchange, and the startup lock that prevents duplicate processors.
This refers to the log category the service uses to report its own health status.
This refers to the Azure-hosted messaging channel the cloud uses to push notifications and work to the on-premise connector.
This is the Syspro-side module and configuration that identifies the cloud endpoints for the connector.
This is the Windows Event Log source to which the Syspro 8 Connector Gateway API Service writes.
This is the identifier that ties the Syspro company to a specific cloud tenant.
Starting
The Syspro 8 Connector Gateway API Service depends on the following being installed and configured correctly (in the below order):
- Syspro 8 e.NET Communications Load Balancer service
-
Syspro Application Gateway Service configuration
-
Outbound connectivity to cloud endpoints
With the gateway addresses known, the connector reaches the Admin API (for tenant identification, credentials, and locking, so that only one connector instance is active per company) and the Payment and Tax APIs as those features are used.
-
Tenant identity and credential exchange
The connector identifies the cloud tenant to which the Syspro company belongs, and exchanges or generates the credentials and signature required for further cloud calls. This step depends on the Admin API being reachable.
-
Notification bus (Azure Service Bus) connectivity
The connector establishes its connection to the cloud notification bus, which is how the cloud pushes work down to this on-premise instance. Credential exchange (step 4) does not begin until this connection has started; the notification bus’s own readiness unblocks credential exchange, not the reverse.
-
The installation and configuration sequence is crucial. An early failure (for example, Syspro 8 e.NET Communications Load Balancer not running) prevents every later step from being attempted.
-
The configuration of the Payment Gateway is required for cloud payment features.
Configure the Syspro 8 Connector Gateway API Service as follows:
-
Launch the Setup Options program and navigate to the Connector Gateway form (Setup Options > System Setup > Connector Gateway).
-
Enter the endpoint address of the Syspro 8 Connector Gateway API Service at the Connector Gateway service setup option.
Select Test connection to verify that the connection to the Syspro 8 Connector Gateway API Service is successful.
If errors are reported on first-time install, restart, or after an endpoint change, please give it a minute before attempting further troubleshooting.
-
Specify the data center within your specific geographic region at the Regional cloud data center setup option. This is used by the Syspro 8 Connector Gateway API Service.
-
Once this is setup up, you can configure the Payment Gateway.
-
Only one active connector instance is expected per company and tenant. The startup sequence includes a locking step specifically to prevent two instances from both attempting to process notifications for the same company.
-
The service is designed to continuously retry most startup operations if required dependencies are unavailable. As a result, the service may appear to remain in a starting state until all dependencies are ready. This behavior is expected and does not indicate a fault.
Solving
When the service is not behaving as expected, check items in the following order. Each step is only meaningful once the previous is confirmed to be sound.
-
Windows Event Viewer, Application log, source SYSPROCGS: startup progress, retries, and failure messages, with descriptive text for each stage.
-
The CustomHealthLogger log category, for the overall health verdict. Look for the “HEALTHY => Yes” entry described below, or its absence, to determine the service’s own verdict on its state, separate from the Windows service status.
As the service retries indefinitely on most failures, a service that is currently healthy may still display earlier failure or retry entries in the log. These do not necessarily indicate an ongoing problem. Check the most recent entries and confirm whether retries are still occurring now, rather than relying on whether a failure was ever logged.
On a clean startup, entries appear in approximately the following order. Compare the live log against this sequence to determine whether startup is progressing normally or has stalled at a specific stage:
-
Stage 1 completes silently. There is no entry of its own; successful completion is confirmed by the appearance of Stage 2’s entries next. If the Stage 1 warning repeats instead, startup has stalled at this stage.
-
Stage 2, endpoint resolution. Informational entries appear as each cloud address resolves (admin, payment, and tax; tax only if resolving from configuration rather than dynamically), followed by EventId 1000 confirming the whole step succeeded, then EventId 1205 confirming the connector-gateway address specifically. EventId 1205 fires once, not once per endpoint.
-
Stage 2, diagnostic dump. Informational entries appear per endpoint (payment, tax, admin, connector-gateway). This is not itself a pass or fail signal.
-
Stage 3 completes silently (tenant ID, then lock request). There are no entries of their own. A repeating “Failed to get Syspro Tenant ID, retrying” message here indicates that startup is stalled at this point instead.
-
Stage 3, lock acquired. “Request received Acquire Lock” appears. The absence of a following “only one processor allowed” or endpoint-not-set message confirms success.
-
Stage 4 completes silently (credential and API key exchange). There is no entry of its own.
-
Notification bus processor starts. An informational entry confirms that the processor started for this company and topic.
-
Overall health confirmation. EventId 1001, “HEALTHY => Yes”. This can appear slightly before or around the same time as step 7, since it requires most, though not all, of the startup stages to have passed.
-
Running throughout in the background, with no entry either way: the notification bus monitoring loop described in Stage 5 below. Its silence is normal and should not be taken as an indication of a problem.
General guidance: the stage whose retry or warning text is currently repeating is the point at which startup has stalled. Everything listed after it has not yet been attempted. If 'Healthy => Yes' appears but a specific feature (for example, notifications) is still not working, the fault lies downstream of that line, most likely the unlogged Stage 5 background task described below.
Succeeds: No dedicated success entry exists for this step. The absence of the failure warning, together with later stages proceeding, confirms that this step passed.
Fails: A warning entry reports that the connector could not confirm the local Syspro service was healthy (session or logon check failed).
What the log cannot distinguish: the local Syspro 8 e.NET Communications Load Balancer service being down entirely, the server being reachable but timing out, a SOAP or communication fault, and a bad logon or session. All of these produce the same generic warning text; there is no separate message for 'server unreachable' versus 'server reachable but rejected the logon'.
Likely causes, in order:
-
The local Syspro 8 e.NET Communications Load Balancer service is not running or is not reachable on its configured host and port.
-
A network, firewall, or binding issue between the connector and the local WCF server. This is less common than the first cause, since this traffic is usually confined to the same server or local network.
-
The Syspro 8 e.NET Communications Load Balancer service is running, but the connector’s logon or session to it is failing (credentials, session limits). This appears identical in the log to the first two causes, so the server should not be assumed to be down without also confirming that it is accepting logons.
Succeeds: Informational entries confirm that each cloud address was resolved (admin and payment endpoints; the tax endpoint only when the Syspro Application Gateway Service is set up to resolve endpoints from configuration rather than dynamically).
Fails: Error entries report that a specific endpoint (admin, payment, or tax) could not be resolved, along with a separate pair of entries relating to writing the resolved connector-gateway address back and reading it back for confirmation.
The write-back entry indicates the following:
The write-back and read-back confirmation log line carries two separate pieces of state in its text: whether the write succeeded and whether the read-back succeeded. Support can read both values from the same line to distinguish a write failure from a read-back failure, or from a same-value timing mismatch, rather than treating every “write-back failed” entry as a single undifferentiated problem.
A known wording inconsistency:
Two different underlying error conditions have been found to reuse the same message text:
-
'cloud payments api endpoint'
This occurs even when the endpoint actually being resolved is the admin or connector-gateway endpoint rather than the payment endpoint.
-
App Gateway base address
has also been found on a connector-gateway read-back failure. In both cases, the entry should be read as an endpoint resolution failure, with the specific endpoint confirmed from context (timing, and the stage in progress) rather than from the endpoint name printed in the message text.
-
Likely causes, in order:
-
The Syspro Application Gateway Service is not yet configured within Syspro. This is the most common cause on a fresh installation.
-
The Syspro Application Gateway Service configuration exists but has an invalid or incomplete value for the specific endpoint reported as failing.
-
A same-value mismatch or timing lag between what was written and what was read back. The two embedded success and fail values on the write-back entry should be checked before assuming this is a fresh configuration problem.
Tax eendpoint resolution is skipped entirely when the connector resolves endpoints dynamically rather than from configuration.
This is confirmed, expected behavior in that mode, not a fault.
-
Succeeds: Separate informational entries confirm that the tenant ID was retrieved, and that the processing lock was acquired.
Fails: Separate error entries appear shared across several of these calls:
-
Could not retrieve tenant ID
-
Could not acquire or build the processing lock request
-
Error when calling business object (generic warning-style entry)
During the tenant ID, credential, and API key validation steps, both business object errors and local Syspro 8 e.NET Communications Load Balancer session errors produce the same generic message. The log entry alone may therefore not indicate the underlying cause.
Connectivity issues with the cloud Admin API generate a distinct exception message. The lock acquisition step is local and is not affected by this behavior.
Likely causes, in order:
-
The server cannot reach the cloud Admin API (DNS, firewall, proxy). This usually produces its own distinct error text rather than the generic business-object message.
-
A business-object-level error on the local Syspro side while looking up the tenant ID or building the lock or credential request. This appears the same in the log as the third cause, so a cloud problem should not be assumed without also checking the local WCF and business-object side.
-
A local Syspro 8 e.NET Communications Load Balancer session-level failure during the same call. This is indistinguishable in the log from the second cause; both should be checked.
-
For locking specifically: Another active connector instance already holds the lock for this company. This is expected if two instances are running, or if a previous instance did not shut down cleanly.
Succeeds: An informational entry confirms that the API key and credential exchange completed.
Fails: An error entry appears for the API key exchange, using the same generic “error when calling business object” form as the tenant ID step.
What the log cannot distinguish:
The same ambiguity described in Stage 3 applies here. A business-object error and a local Syspro 8 e.NET Communications Load Balancer session error appear identical in this entry.
Likely causes (the same as stage 3):
-
A local business-object or Syspro 8 e.NET Communications Load Balancersession problem on this specific call.
A reachability problem to the Admin API is less likely at this stage, since Stage 3 would typically have failed first.
Overall startup success signal:
Once the tenant ID, lock, and credential and API key exchange all succeed, a distinct informational entry is logged confirming that initialization completed, with an explicit 'Healthy => Yes' statement. This single line confirms that stages 1 through 4 have passed, separate from the individual per-step entries.
Succeeds: An informational entry confirms that the notification bus processor started successfully for this company and topic.
Fails (setup path: topic or subscription creation, connection string): A generic error entry ('an error occurred in the processor task') that repeats on a retry cycle, commonly at intervals of around 10 seconds, until it succeeds.
Fails silently (a known gap which should be escalated to engineering rather than treated as a missing log entry): The background task that periodically checks whether processors should be started or stopped runs on its own loop, with no logging and no error handling at all. If a fault occurs at this level, as distinct from within the processor startup itself, no corresponding SYSPROCGS entry exists. The resulting symptom is that notifications silently stop being picked up, with nothing in the log indicating why. If stages 1 through 4 all show as healthy and notifications are still not flowing, and there is no repeating error entry for the processor task, this gap should be suspected rather than continuing to search the log for an entry that may not exist.
Likely causes, in order:
-
Outbound connectivity to Azure Service Bus is blocked (firewall or proxy). This usually appears as the repeating 'error occurred in the processor task' entry.
-
The lock, topic, or subscription setup for this company is failing (credentials from stage 4 not yet valid, or another instance holding the lock). This produces the same repeating entry.
-
No log entry at all, despite a genuine problem: the unlogged background monitoring gap described above. stages 1 through 4 should be confirmed as genuinely healthy first, and 'no entries, but notifications are not arriving' should then be treated as its own case rather than assumed to be normal.
The service typically continues to show as Running in Windows Services even when it has not completed startup.
A Started status is not equivalent to a healthy status. The service logs its own overall health status under the CustomHealthLogger log category; the 'Healthy => Yes' entry described under stage 4 above, or its absence, indicates the service’s own verdict on its state, separate from the Windows service status.
All entries below appear in Windows Event Viewer, application log, source SYSPROCGS. Where an exact message or Event ID is confirmed, it is quoted directly and can be used to search or filter the log. Where none exists, that is stated explicitly rather than left to inference.
| Stage | Look for on success | Look for on failure | Can the log distinguish causes? |
|---|---|---|---|
|
1. Local Syspro 8 e.NET Communications Load Balancer service |
No dedicated entry; inferred from later stages proceeding. |
Warning: generic connection or session error text. |
No. Server down, timeout, SOAP fault, and bad logon all produce identical text. |
|
2. Application Gateway endpoint discovery |
Informational entries confirming each cloud address resolved (admin, payment; tax only if resolving from configuration). EventId 1000 confirms overall success. EventId 1205 confirms the connector-gateway address specifically (fires once, not per route). |
Error entries per failing endpoint. EventId 1205 failure variant. EventId 1251 diagnostic dump (shared ID between payment and tax). | Partly. The 1205 entry embeds two separate success and fail values (write, read-back) that can be read directly from the line. |
|
3. Tenant ID and locking |
Informational: tenant ID retrieved; lock acquired. |
'Failed to get Syspro Tenant ID, retrying...' or '...after multiple retries.' Generic 'error when calling business object' text. |
No, for the business-object versus Syspro 8 e.NET Communications Load Balancer service session distinction; both appear the same. Network or reachability failures to the cloud Admin API do show distinct text. Lock contention text (“only one processor allowed”) is distinct. |
|
4. Credential and API key exchange |
Informational: exchange completed. EventId 1001 “HEALTHY => Yes” once this and prior stages succeed. |
Same generic 'error when calling business object' form as Stage 3. | No. Same ambiguity as Stage 3. |
|
5. Notification bus (Service Bus) |
Informational: processor started for this topic. |
'An error occurred in the processor task' repeats at approximately 10-second intervals. | Partly. This entry covers the setup path, but a separate background task that starts and stops processors has no logging at all; a fault there produces no entry whatsoever. |
Note: tax endpoint resolution is skipped entirely when the connector resolves endpoints dynamically rather than from configuration. This is confirmed, expected behavior in that mode, not a fault.
Confirmed against source, and listed so that entries are not over-interpreted in isolation:
-
The warning in stage 1 (Syspro 8 e.NET Communications Load Balancer health) failure is the single catch-all for connection refused, timeout, communication or SOAP fault, and a bad logon or session. All four produce identical text.
-
The 'error when calling business object' warning in stage 3 and 4 is shared between a genuine business-object-level failure and a local Syspro 8 e.NET Communications Load Balancer session-level failure, for both the tenant ID step and the API key step.
-
Two confirmed cases exist of a message’s wording naming the wrong endpoint: payment-endpoint wording appearing on admin or connector-gateway failures, and 'App Gateway' wording appearing on a connector-gateway read-back failure.
The stage in progress and the surrounding entries should be used to identify the correct endpoint, rather than the endpoint name printed in the message.
-
At least two Event IDs are known to be reused for more than one distinct message elsewhere in the underlying logging (endpoint resolution success and failure sharing an ID, and a similar pair around payment and tax service entries).
An Event ID alone should not be assumed to identify which condition occurred; the message text should also be checked. •
-
The notification bus background monitoring loop (see stage 5 above) has no corresponding log entry at all for its own failures. This is not a reused signal but an absence of any signal, and is the most significant gap to flag to engineering.
-
The address of the local WCF business object server (host and port) is configurable and can differ between installation types. A single fixed value should not be assumed across all customer sites.
-
The Syspro Application Gateway Service base address is configurable, and is what the Application Gateway step ultimately resolves.
You can view monitoring and troubleshooting messages about this service using the Event Viewer function in Windows:
(Control Panel > System and Security Administrative Tools > Event Viewer > Applications and Service Logs)
This service outputs an event log to the SYSPROCOMMS file.
Log: Application
Source: SYSPROCGS
What to expect at healthy startup:
-
A sequence of informational entries tracking each stage described above (the Syspro 8 e.NET Communications Load Balancer check passing silently, gateway endpoint resolution, tenant ID retrieval, lock acquisition, credential and API key exchange, the overall 'Healthy => Yes' confirmation, then notification bus processor start), completing without repeated error entries immediately following them.
What to expect when unhealthy:
-
Repeated warning or error entries tied to whichever stage is failing, typically reappearing at a regular interval as the service retries, commonly every 10 to 30 seconds depending on the stage. Exact intervals differ per stage and are not necessarily customer-configurable.
You can start, stop, restart and configure this service using the Services function in Windows:
(Control Panel > System and Security Administrative Tools > Services)
The service generally shows as Started or Running in the Windows Services console even while still working through its startup dependency chain, or while retrying on a failing step. A Running status alone does not confirm health. The CustomHealthLogger Healthy signal and the SYSPROCGS event log should always be cross-checked.
A Running status only indicates that the Windows process started, but it does not indicate that the service reached a healthy state.
To ensure that the service is health, do the following:
-
Check the CustomHealthLogger entries to verify that services are healthy.
-
Check the SYSPROCGS event log for the most recent entries to identify which stage it is stalled on. Work through the checks in this order:
-
local Syspro 8 e.NET Communications Load Balancer service
-
Syspro Application Gateway Service configured
-
Outbound cloud connectivity and tenant ID and locking
-
Credential exchange
-
Notification bus connectivity
-
The first item found to be broken is almost always the actual cause; later symptoms (for example, notifications not arriving) are often downstream effects of an earlier, unresolved failure.
-
Each dependency in the checklist above should be confirmed as available before expecting the service to reach a healthy state.
-
This is not necessarily a fault.
By design, the service retries most startup failures indefinitely. Restarting the service does not resolve an underlying dependency problem, such as the Syspro 8 e.NET Communications Load Balancer service being unavailable or the Syspro Application Gateway Service not being configured.
-
Each dependency in the checklist in the Prerequisites section should be confirmed as available before expecting the service to reach a healthy state.
The Windows Event Log (Application log, source SYSPROCGS) carries the descriptive failure messages for each stage.
The CustomHealthLogger category is the fastest way to view the current overall verdict (Healthy => yes or no) without reading the full log. A small number of log entries cannot distinguish between two different underlying causes on their own (see the Event Viewer section). Where this applies, both possible causes should be checked rather than relying on the wording alone.
This can occur because one specific part of the notification bus startup, the background task that decides whether to start or stop processors, has no logging of its own. If the rest of the startup chain shows as healthy and there is no repeating error occurred in the processor task entry, an unlogged path is a likely cause.
This should be escalated to engineering with confirmation that stages 1 through 4 are healthy and no processor-task error is present. This is a known gap in the current logging, and not something that can be diagnosed from the event log alone.
Review the five items
- Syspro 8 e.NET Communications Load Balancer service setup
Syspro Application Gateway Service configuration within Syspro
Syspro 8 Connector Gateway API Service setup
PayThem setup for payment features
Customer's cloud tenant and environment provisioning
All five are required for the connector to reach a healthy state, and none of them are configured from the on-premise connector side. A fault in any of them will still present as a connector-unhealthy state.
Using
-
Restarting the service re-runs the full startup dependency chain from the beginning, as follows:
-
Syspro 8 e.NET Communications Load Balancer check
-
Syspro Application Gateway Service
-
Cloud connectivity
-
Tenant and credentials
-
Notification bus
If a dependency is still not ready, the service simply begins retrying again at the same step.
-
-
Stopping the service cleanly stops notification bus processing. It does not require any special shutdown sequence beyond the standard Windows service stop.
Copyright © 2026 Syspro PTY Ltd.