Transaction Errors
When an appointment sync to Business Central fails, the failed transaction shows up on the Errors page with a message prefixed by a stable code in square brackets, e.g. [DSBC003] BC server too busy. The code never changes once issued, so you can search transactions or logs for [DSBC003] to find every appointment that hit the same failure.
Retried codes are picked up automatically by the retry job (3 attempts, exponential backoff with jitter, then the row stays Failed for the next pass). Fix configuration codes need a connector or back-office setup change first - they are not retried. Undiagnosed failure shapes should be sent to support so a rule can be added.
Each section pairs 💡 (what it means) with 🛠️ (what to do).
Quick lookup
| Code | Goes to | Retry |
|---|---|---|
DSCFG001 | Back-office not allowed | fix config |
DSCFG002 | Missing required field | fix config |
DSCFG003 | Back-office returned no data | fix config |
DSCFG004 | Schema mismatch | fix config |
DSCFG005 | Wrong system type | fix config |
DSCFG006 | OAuth credentials unparseable | fix config |
DSCFG007 | Malformed connector URL | fix config |
DSCFG008 | HTTP request unauthorized | fix config |
DSCFG009 | HTTPS required for SOAP | fix config |
DSHTTP001 | HTTP transient (429/5xx) | retried |
DSBC001 | HTTP request unauthorized | fix config |
DSBC002 | BC endpoint not found | fix config |
DSBC003 | BC server too busy | retried |
DSBC004 | Request channel timeout | retried |
DSBC005 | BC communication fault | retried |
DSBC006 | SOAP "unknown type" fault | fix config |
DSBC007 | SOAP "service not found" fault | fix config |
DSBC008 | BC REST API missing Location header | fix config |
DSBC009 | SOAP HTTP transient (429/5xx) | retried |
DSDB001 | SQL transient | retried |
DSDB002 | Database access | retried |
DSDB003 | Concurrency conflict | retried |
DSDB004 | SQL timeout | retried |
DSUNK001 | Undiagnosed | undiagnosed |
Request channel timeout
The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. The HTTP request to 'http://[server]/[instance]/WS/[company]/Page/Appointment' has exceeded the allotted timeout of 00:01:00.
DSBC004DSHTTP001retried automaticallyThe WCF channel timed out before BC responded. The operation may have completed on BC's side regardless. The most common cause is that the web service is not accessible from Dime.Scheduler, typically due to firewall restrictions blocking the connection. Other causes: network latency, BC server under heavy load, large payloads, slow database queries on the BC side, or complex AL business logic.
Transient - retried automatically. If it persists:
- Check firewall and network accessibility:
- Verify the Business Central web service URL is accessible from the Dime.Scheduler cloud.
- Open the required firewall ports to allow traffic from Dime.Scheduler to Business Central.
- On-premises: ensure the web service endpoint is published and accessible externally.
- Cloud: verify the service is not blocked by network security groups or Azure firewall rules.
- Test connectivity using tools like
telnet,curl, or a browser from the Dime.Scheduler cloud.
- Verify connector URL:
- Navigate to Administration > Connectors in Dime.Scheduler.
- Verify the web service URL is correct and accessible.
- Increase the timeout if connectivity is confirmed:
- Edit the Business Central connector.
- Increase the Request Timeout value (for example, from 60 to 120 seconds or higher).
- Optimize Business Central performance:
- Review and optimize custom code in the appointment processing codeunits.
- Check for database locks or slow queries.
- Review the Business Central server event logs for performance issues.
If timeouts occur frequently during specific times of day, this often indicates server load issues. Consider scheduling heavy processing tasks outside of peak planning hours.
HTTP request unauthorized
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Basic realm=...'
Variations include 401 Unauthorized and Invalid credentials.
DSBC001DSCFG008fix configurationDSBC001 - WCF rejected the SOAP-level credentials (the configured username/password is wrong or the security mode doesn't match what BC expects). DSCFG008 - the back-office returned HTTP 401 or 403 to the REST/OAuth path. The authentication method configured on the connector does not match what Business Central expects, or the credentials are incorrect or expired.
Step 1 - Check the BC version
- Business Central Cloud (SaaS) - use OAuth 2.0.
- Business Central On-Premises - use Basic Authentication, Windows/NTLM, or OAuth 2.
Step 2 - Fix the authentication
- Go to Administration > Connectors in Dime.Scheduler.
- Edit the Business Central connector.
- Set authentication to the desired authentication method.
- Fill in the required authentication fields.
Follow the OAuth setup guide.
If the test fails with the wrong password, verify the account is not locked in Active Directory or Business Central.
Step 3 - If the test still fails
Check these common issues:
| Problem | Fix |
|---|---|
| OAuth: "Client secret expired" | Generate a new secret in Azure Portal and update the connector |
| OAuth: "Invalid tenant ID" | Verify the tenant ID matches your Azure AD tenant |
| Basic Auth: "Invalid username" | Try without the domain prefix (just USERNAME) |
| Basic Auth: "Account locked" | Unlock the account in Active Directory or BC |
| "Permission denied" | Verify the account has access to Dime.Scheduler tables |
Step 4 - Retry the failed transaction
Once the test connection succeeds, retry the failed appointment from the Errors page.
BC endpoint not found
DSBC002fix configurationEndpointNotFoundException for both "host unreachable" (DNS failure, tunnel offline, connection refused, port closed) and "host answered with 404" - the URL or the service is wrong./WS/<Tenant>/Page/<PageId>) and that the host is reachable from the back-office service. The page may be unpublished, the BC tenant may be down, or the URL may be pointing at a stale environment.BC server too busy
DSBC003retried automaticallyServerTooBusy. The BC tenant is at capacity.BC communication fault
DSBC005retried automaticallySOAP "unknown type" fault
DSBC006fix configurationThe type X is unknown. - usually because the published AL extension is out of date and no longer matches the WSDL the connector was generated against.SOAP "service not found" fault
DSBC007fix configurationService "X" was not found! - the SOAP URL is correct but the requested page (Page/Appointment) is not exposed at that URL.BC REST API missing Location header
DSBC008fix configurationLocation header pointing at the new record - so Dime.Scheduler can't post the follow-up process call.process action manually, or check why BC isn't returning a Location header (custom AL code stripping it, reverse proxy rewriting it, etc.).SOAP HTTP transient (429/5xx)
DSBC009retried automaticallyProtocolException with The remote server returned an unexpected response: (NNN) ... where NNN is 429/502/503/504. BC's HTTP front-end (or a proxy/load-balancer in front of it) is temporarily unhealthy. SOAP-path counterpart of DSHTTP001.HTTPS required for SOAP
DSCFG009fix configurationWebServiceAddress uses http://, but BC's SOAP binding requires Transport security (HTTPS). WCF refuses to open the channel and raises ArgumentException: The provided URI scheme 'http' is invalid; expected 'https'. (Parameter 'via').https://. BC Online only publishes the SOAP endpoint over HTTPS; on-prem BC must have the SOAP service configured with SSL.Back-office not allowed
DSCFG001fix configurationMissing required field
DSCFG002fix configurationJobNo/TaskNo when the back-office requires them.Back-office returned no data
DSCFG003fix configurationSchema mismatch
DSCFG004fix configurationWrong system type (REST vs SOAP)
DSCFG005fix configurationWebServiceAddress on the connector matches the API type (SOAP vs REST) selected on the connector record.OAuth credentials unparseable
DSCFG006fix configurationkey=value;key=value blob and one of the required keys (client_id) is missing or the blob has no semicolons.client_id, client_secret, token_endpoint) are present and semicolon-separated. The OAuth setup guide walks through the full flow.Malformed connector URL
DSCFG007fix configurationWebServiceAddress is not a valid URI (typos, missing scheme, illegal characters).HTTP transient (429/5xx)
DSHTTP001retried automaticallyRetry-After header is honored if present.SQL transient
DSDB001retried automaticallyDatabase access
DSDB002retried automaticallyConcurrency conflict
DSDB003retried automaticallySQL timeout
DSDB004retried automaticallyUndiagnosed
DSUNK001undiagnosedFailed so the RetryService picks it up later.General troubleshooting steps
When encountering transaction errors, follow these steps. For more detailed guidance, see the Business Central Troubleshooting guide.
- Check the transaction details:
- Navigate to Administration > Transactions > Errors.
- Click on the failed appointment to view detailed error information.
- Review the error message - the code in square brackets at the start maps to a section above.
- Verify connector configuration:
- Navigate to Administration > Connectors.
- Check the Business Central system:
- Review the Dime.Scheduler Appointments table.
- Verify the web service endpoints are available and responding.
- Retry the transaction:
- After resolving the underlying issue, retry the failed transaction.