> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eftsureinsided365fo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting Eftsure inside D365 Finance & Operations

> Step-by-step guidance for diagnosing and resolving common issues in Eftsure inside D365 FO, for both end users and administrators.

When something does not work as expected in Eftsure inside Dynamics 365 Finance & Operations, you have several built-in tools to help you pinpoint the cause before raising a support ticket. The sections below describe the tools available to end users and administrators, along with guidance on known error patterns and sandbox-specific considerations.

<Tip>
  Your support team uses the same tools described here. Checking them yourself first almost always speeds up resolution.
</Tip>

***

## For End Users

<Steps>
  <Step title="Check the Status page">
    Navigate to **Eftsure workspace → Dashboard → Status** to see whether any active errors or warnings are recorded against your session or recent actions. This is the fastest way to confirm whether a problem is isolated to your activity or is broader in scope.
  </Step>

  <Step title="Ask the Virtual Assistant">
    The built-in **Virtual Assistant** can answer common questions about Eftsure workflows, status meanings, and next steps. Open it from the Eftsure workspace to get contextual help without leaving D365.
  </Step>

  <Step title="Contact your Eftsure administrator">
    If the status page is clear and the assistant does not resolve your issue, escalate to your organisation's designated Eftsure key user or administrator. They have access to logs and configuration tools that end users cannot access directly.
  </Step>
</Steps>

***

## For Administrators

<Steps>
  <Step title="Review the logs">
    Navigate to **Eftsure workspace → Admin → All logs** to inspect recent activity and identify any errors. Cross-reference log entries with the known issues listed in the [Known Issues](#known-issues) section below — most errors relate to configuration or a process that did not complete correctly.
  </Step>

  <Step title="Check batch job status">
    Navigate to **Eftsure workspace → Admin → Batches** to confirm that synchronisation batches are running and completing without errors. Batch failures are a common cause of stale vendor statuses and synchronisation gaps.
  </Step>

  <Step title="Inspect the Supplier Sync report">
    Navigate to **Eftsure workspace → Tools → Supplier sync** to review which vendors have synced to the Eftsure portal and which have not. Vendors shown as grey in D365 are frequently caused by an incomplete or failed supplier sync.
  </Step>

  <Step title="Run the configuration check">
    Use the built-in configuration validation tool to verify that your Eftsure setup is correct. The config check now validates workflow users and can export its output as an HTML attachment for review or sharing with support. See [Configuration check](/admin/setup) for instructions.
  </Step>

  <Step title="Check for outages">
    If you suspect a platform issue rather than a local configuration problem, review the Eftsure outage status. Contact your Eftsure administrator or refer to the in-product outage information for current platform status.
  </Step>

  <Step title="Contact key user support">
    If you cannot resolve the issue using the tools above, contact Eftsure support through the in-product **Support** tool. This tool is context-aware: it automatically captures a screenshot of your current screen and attaches any selected vendor history, logs, or trace data to your ticket, which significantly reduces back-and-forth. See [Key user support](/admin/setup).
  </Step>
</Steps>

***

## Sandbox Environments

<Note>
  Many unexpected behaviours in sandbox environments stem from incomplete post-deployment activities rather than product defects.
</Note>

After deploying or refreshing a sandbox, make sure you have completed all [post-deployment activities](/admin/setup) before testing. Invalid configuration, incorrect environment settings, or misconfigured user accounts are the most common root causes of issues encountered in non-production environments.

Key checks include:

* Confirm the Eftsure endpoint is pointing to the **sandbox** portal (`sandbox.eftsure.com.au`) rather than the production portal (`portal.eftsure.com.au`).
* Verify that all generic and personal API user accounts have the correct credentials and `PartnerId` configured in the Eftsure portal.
* Re-run the configuration check after any database refresh to detect stale settings.

***

## Advanced: Trace Parser

If you are experiencing a performance issue or a complex intermittent error that cannot be diagnosed through logs and batch checks alone, use the D365 Trace Parser to capture a detailed execution trace.

1. [Capture a trace](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/perf-test/trace-trace-tutorial) while reproducing the issue.
2. [Analyse the trace](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/perf-test/trace-parser) using the Trace Parser tool to identify slow queries or unexpected call chains.
3. Attach the trace file to your support ticket for review by the Eftsure engineering team.

***

## Known Issues

The errors below are the most common issues encountered by users and administrators. In most cases they result from a configuration setting rather than a product defect.

### Onboarding

<AccordionGroup>
  <Accordion title="Error: &#x22;Field GST group must be filled in&#x22;">
    **Trigger:** Accepting a new onboarding after the review step.

    **Cause:** The GST/tax group field is set as mandatory for the vendor master, but no default tax group is configured for the vendor group. Because the onboarding process creates the vendor automatically, the GST group is unknown and the creation fails.

    **Resolution — choose one:**

    * Set a default GST group on the relevant vendor group(s).
    * Manually select the correct GST group for each vendor before accepting the onboarding.
    * Remove the mandatory tax group requirement (note: vendors will then be created without a GST group).

    See [Data integrity](/admin/setup) for configuration steps.
  </Accordion>

  <Accordion title="Error: &#x22;ABN must be specified&#x22;">
    **Trigger:** Accepting an onboarding for a business that does not have an ABN.

    **Cause:** ABN is configured as a mandatory field for all vendors.

    **Resolution:** Change the ABN requirement from mandatory to optional in the vendor parameters.
  </Accordion>
</AccordionGroup>

### Vendor Master

<AccordionGroup>
  <Accordion title="Error: Invalid ABN when modifying an existing record">
    **Message:** `Invalid ABN '12 345 678 900': ABN doesn't satisfy validation rules`

    **Trigger:** Attempting to edit any field on a vendor that already has an invalid ABN stored.

    **Cause:** ABN validation is enabled, so the system rejects any save where the ABN fails the checksum.

    **Resolution — choose one:**

    * Correct the ABN before editing any other field, or clear it entirely.
    * Disable ABN lookup for all records in the system configuration.
    * Disable ABN lookup at the customer level only, leaving it active for AP vendors.
  </Accordion>

  <Accordion title="Error: &#x22;Please choose a contact from the list&#x22;">
    **Trigger:** Saving a vendor record.

    **Cause:** The vendor has an incorrect or unresolved **Primary contact** value, often caused by a record template that carries a stale primary contact reference.

    **Resolution:** Go to the affected vendor → **Purchasing demographics** → **Primary contact**, and enter a valid value. If you are using record templates to create vendors, clear the **Primary contact** field on the template to prevent this from recurring.
  </Accordion>
</AccordionGroup>

### Vendor Payments

<AccordionGroup>
  <Accordion title="Error: GST Group mandatory for vendor payment journal">
    **Message:** `GST Group mandatory for vendor AU-XXXXX voucher VPAXXXXXX`

    **Cause:** GST validation is switched on for all payment journal lines.

    **Resolution — choose one:**

    * Set a default GST group on each payment journal line.
    * Remove GST group validation from vendor payment journals while keeping it active for vendor invoice checks.

    See [Payments](/workflows/payments) for more detail.
  </Accordion>

  <Accordion title="Error: Eftsure validation — lines have invalid verification status">
    **Message:** `Eftsure validation: 1 line(s) have invalid Eftsure verification status. Please validate and review journal before posting again.`

    **Cause:** The vendor is excluded from daily Eftsure synchronisation but is assigned a default payment method that has Eftsure validation enabled.

    **Resolution:** Create a new payment method with Eftsure validation **disabled** and assign it to the excluded vendor.
  </Accordion>
</AccordionGroup>

### Access & Authentication

<AccordionGroup>
  <Accordion title="Error: Incorrect PartnerId (UpgradeRequired) on generic account">
    **Message:** `Eftsure cloud: Incorrect PartnerId (UpgradeRequired)`

    **Cause:** The generic (batch) account used to synchronise D365 with the Eftsure portal has an incorrect `PartnerId`.

    **Resolution:** Review the generic username and password in the Eftsure configuration, then raise a support ticket requesting the correct `PartnerId` be assigned to that account. Once assigned, the login test will return a success message.
  </Accordion>

  <Accordion title="Error: Login failed (Unauthorized) on personal account">
    **Message:** `Eftsure cloud: Login failed (Unauthorized)`

    **Trigger:** Attempting to sync a new onboarding from the portal.

    **Cause:** The username or password is incorrect, the user does not have API access, or the account has not been assigned the correct `PartnerId`.

    **Resolution:** Verify the credentials against the Eftsure portal directly. If the login works in the portal but not in D365, raise a support ticket to request **Customer API** permissions and the correct `PartnerId` for your environment. Also check that any browser-saved passwords are up to date.
  </Accordion>
</AccordionGroup>

### Synchronisation

<AccordionGroup>
  <Accordion title="Vendor shows self-certified in vendor master but grey in payment journal">
    **Cause:** The bank account was recently created and has not yet synchronised to the Eftsure portal, or the legal entity is not set up correctly in the portal.

    **Resolution:**

    1. Confirm the vendor bank account is synchronised to the Eftsure portal.
    2. Ensure the legal entity in the portal matches the D365 legal entity exactly.
    3. Re-validate the payment journal — the status should update to reflect the correct verified state.
  </Accordion>

  <Accordion title="Vendor shows grey (None) status — vendor not synced to portal">
    **Cause:** Two common reasons:

    * The vendor was manually created in D365 and belongs to an excluded vendor group (not scheduled for sync).
    * The vendor was created manually with a normal vendor group but did not auto-sync due to a user account validation failure.

    **Resolution:** Update user access as needed, then manually trigger a sync to the Eftsure portal from **Eftsure workspace → Tools → Supplier sync**.
  </Accordion>

  <Accordion title="Bank account is verified but vendor still shows grey">
    **Cause:** Eftsure verification status reflects the **default bank account** only. If no default bank account is selected, or if the vendor was created manually without the Eftsure onboarding process, the status cannot be populated.

    **Resolution:** Open the vendor master, select the correct bank account as the **default bank account**, and save. The verification status will populate once the default is set.
  </Accordion>
</AccordionGroup>

### Phone Number Validation

<AccordionGroup>
  <Accordion title="Error: Phone number is invalid for country">
    **Message:** `Phone number 'XXX XXX XXXX' is invalid for country YY`

    **Cause:** Two possible causes:

    * The phone number is genuinely invalid — find a phone number that matches the country's formatting rules.
    * The phone number is valid, but the validation library is using an outdated ruleset for that country.

    **Resolution for outdated ruleset:** Temporarily [bypass](/user/supplier-communication) or [disable](/user/supplier-communication) phone number validation, complete your current action, re-enable validation, and then upgrade Eftsure to the latest version to get the updated country rules.
  </Accordion>
</AccordionGroup>

### Concurrent Operations

<AccordionGroup>
  <Accordion title="UpdateConflict errors">
    **Message:** `Cannot edit a record in [Table]. An update conflict occurred due to another user process deleting the record or changing one or more fields.`

    Update conflicts can occur in distributed environments, particularly when batches run during peak user activity or while other related batches are executing. Retry the operation after a short delay.

    <Note>
      A single UpdateConflict occurrence is not investigated. If you are experiencing high volumes of repeated conflicts, contact support.
    </Note>
  </Accordion>

  <Accordion title="Deadlock errors">
    **Message:** `Cannot edit a record in [Table]. Deadlock, where one or more users have simultaneously locked the whole table or part of it.`

    Deadlocks can occur in distributed environments under similar conditions to UpdateConflicts. Most deadlocks are retried automatically after a short delay.

    <Note>
      A single deadlock occurrence is not investigated. If you are experiencing repeated deadlocks at high volume, contact support.
    </Note>
  </Accordion>
</AccordionGroup>

### Deployments

<AccordionGroup>
  <Accordion title="Missing modules error during deployment">
    **Message:** `The selected package is missing the following modules that are currently deployed on your environment. You must create an all-in-one deployable package...`

    **Resolution:** Open the package ZIP file and confirm it contains all required sub-packages. Your deployable package must include all ISV solutions and code customisations as an all-in-one package.
  </Accordion>
</AccordionGroup>

### Web Service Errors

The errors below follow standard HTTP status code conventions. You can find a full reference at [HTTP Status Codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes).

| Error Code                    | Meaning                  | Typical Cause & Action                                                                                                   |
| ----------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| **401 Unauthorized**          | Authentication failed    | Token has expired, or the user lacks the required permissions. Re-authenticate or review user roles.                     |
| **403 Forbidden**             | Insufficient permissions | The account does not have the necessary API access. Request the correct permissions from support.                        |
| **408 Token Timeout**         | Request timed out        | A network timeout or an expired Eftsure user account. Retry the action; if using an expired account, contact support.    |
| **500 Internal Server Error** | Server-side failure      | Likely an Eftsure platform outage. Retry after a few minutes; contact support if the situation does not resolve quickly. |


## Related topics

- [Eftsure Admin Setup Guide for D365 Finance and Operations](/admin/setup.md)
- [Integration Tools in Eftsure Inside D365 Finance & Ops](/integrations/overview.md)
- [Frequently Asked Questions — Eftsure inside D365 FO](/help/faq.md)
- [Supplier Communication Tools in Eftsure Inside D365 FO](/user/supplier-communication.md)
- [Release Notes — Eftsure inside D365 FO (2024–2025)](/help/release-notes.md)
