Troubleshooting

Access forbidden, billing errors, ticket charge issues, user linking.

Written By Victor Raessen

Last updated 8 days ago

Running into an issue? This section covers the most common problems and how to resolve them. If you can't find your answer here, reach out to our support team through the chat widget or email support@salesbuildr.com.

Access Forbidden

When you see "Access Forbidden" or are blocked from reaching a page or feature, the cause is one of these:

Your user is not linked to a company

Salesbuildr requires every non-admin user to be linked to a company and verified. If either condition is missing, API requests return "You are not linked to a company or the link is not verified."

Resolution:

  1. Go to Settings > Users & Permissions

  2. Find the affected user

  3. Confirm they have a company assigned

  4. Confirm the link is verified

  5. If the user was synced from a PSA, run a manual sync to ensure their company link is up to date

Your role lacks the required permission

Salesbuildr uses role-based access control. If your account doesn't have the right permission, the request is blocked.

Resolution:

  • Ask your admin to check your role at Settings > Users & Permissions > Roles

  • Admin users bypass all permission checks

  • For non-admin users, the relevant permissions are: Quote editor, Product viewer, Product editor, Products importer, Pricing book editor, Company editor, Whitespace viewer, Procurement editor (see Users & Permissions for details)

Your email is unverified or login is disabled

Salesbuildr checks several conditions at login:

ConditionError codeWhat it means

User was deleted

USER_DELETED

The user account was soft-deleted. An admin needs to restore it

Email not verified

EMAIL_UNVERIFIED

The email address hasn't been verified. Sign in with Google or Microsoft to auto-verify, or follow the verification link sent to your email

Company not verified

COMPANY_UNVERIFIED

The user's company link hasn't been verified. Admin needs to verify

Login disabled

LOGIN_DISABLED

Login has been turned off for this account

Auth provider invalid

AUTH_PROVIDER_INVALID

You're trying to log in with a provider (Google/Microsoft/password) that your admin has disabled

Resolution:

  • Log out and log back in to refresh your session

  • Try a different login method (Google, Microsoft, or password) if one is blocked

  • Contact your admin to check your account status

MSP domain restriction

If your admin has configured MSP domains (under Settings > Platform > Authentication), users with matching email domains must be explicitly invited before they can log in.

BillingCode does not exist or is invalid (Autotask)

This error occurs when a product is synced to Autotask but the assigned billing code is missing or has been deleted in Autotask.

How billing codes work

Salesbuildr maps billing codes to product categories. When a product is synced to Autotask, Salesbuildr assigns the billing code configured for that product's category.

Resolution

  1. Navigate to Settings > Integrations > Autotask > Billing Codes

  2. Check that the billing code assigned to the product's category still exists in Autotask

  3. If the billing code was deleted or renamed in Autotask, run Settings > Integrations > Autotask > Synchronize to refresh the billing code list

  4. Re-assign a valid billing code to the affected category

  5. Retry the product sync

Billing codes are also used for ticket charges and purchase orders. If the error appears during a ticket charge or procurement flow, check the billing code configured at Settings > Integrations > Autotask > Purchase Order.

ConnectWise Sync Error: "catalogItem object is invalid" — Fixing an Inactive Category Mapping

If you're seeing an error like "Category 80 in ConnectWise is disabled. Re-map this product's category in Settings → Integrations → ConnectWise → Categories." — or the raw ConnectWise wording, "catalogItem object is invalid. 80 is an inactive" — when syncing products to ConnectWise, this isn't a problem with your product. It means a product category in Salesbuildr is mapped to a category that has since been disabled or deleted in ConnectWise.


Why this happens

When a ConnectWise product category is disabled or deleted, Salesbuildr doesn't receive any automatic notification. ConnectWise's API stops returning disabled categories, so Salesbuildr can no longer read that category's details — but the mapping is still saved, and every sync referencing it fails until it's corrected.

Salesbuildr detects these mappings and flags them on the category mapping page, so you can fix them yourself.


How to fix it

1. Go to your ConnectWise category mappings Navigate to Settings > Integrations > ConnectWise > Categories and select the Map categories tab. This page lists all the category mappings between Salesbuildr and ConnectWise.

2. Find the highlighted mappings Mappings pointing at a disabled or deleted ConnectWise category are highlighted at the top of the mapping table and labelled Inactive or deleted. If the category was deleted from ConnectWise outright, the row reads Unknown ConnectWise category (ID 80), because the name can no longer be looked up.

3. Re-map the affected Salesbuildr category first In the mapping table underneath the highlighted rows, select an active ConnectWise category for each affected Salesbuildr category. Do this before removing anything — removing the old mapping on its own does not restore sync.

4. Remove the inactive mapping Click the trash icon on the highlighted row. The row disappears from the list, but the change is not stored yet.

5. Click Save The removals and the new mappings are applied together.

6. Retry the sync Return to the affected product or quote and attempt to sync again. The error should no longer appear.


💡 Tip: Set a Default category on the Defaults tab of the same page. When a mapped category turns out to be disabled, Salesbuildr syncs the product into the default category rather than failing, which keeps your sync working while you correct the mapping.


Still seeing the error?

If no mappings are flagged and you're still getting the error, check the Map Root Category tab as well — root category mappings can point at disabled categories too. If it still fails, contact Salesbuildr Support and include:

  • The name of the affected product

  • The full error message you're seeing

No matching records found (Autotask)

This error typically appears during Autotask synchronization when Salesbuildr queries the Autotask API for a specific entity (product, company, contact, or opportunity) and Autotask returns no results.

Common causes

  • The entity was deleted in Autotask but its reference still exists in Salesbuildr

  • The Autotask API user doesn't have visibility to the entity (security level restrictions)

  • An external identifier stored in Salesbuildr no longer matches any Autotask entity

Resolution

  1. Check whether the entity still exists in Autotask

  2. If it was deleted, dismiss the sync issue at Settings > Tools > Issues

  3. If it should exist, verify your Autotask API user's security level allows access to the entity type

  4. Run a full sync to re-index the mapping between Salesbuildr and Autotask

Ticket charges are cancelled (Autotask)

Ticket charges synced from Autotask can have one of several statuses. When charges show as "cancelled," this reflects the status set in Autotask — Salesbuildr mirrors the Autotask status, it does not change it.

Ticket charge statuses

Autotask ticket charges have these possible statuses:

  • New — charge was just created

  • Waiting Approval — charge needs manager approval in Autotask

  • Approved/Posted — charge was approved and posted

  • Rejected — charge was rejected by an approver

  • Cancelled — charge was cancelled

  • Waiting Customer — pending customer action

  • Billed — charge has been invoiced

Resolution

  1. Open the affected ticket charge in Autotask directly and check its status and history

  2. If the charge was cancelled in error, recreate it in Autotask — it will sync back to Salesbuildr

  3. If charges are being imported as cancelled automatically, check:

    • Settings > Integrations > Autotask > Purchase Order — the Import new ticket charges toggle controls whether new ticket charges from Autotask are imported into Salesbuildr procurement

    • The import only pulls charges created within the last 2 hours

    • Products marked as "Does not require procurement" are skipped during import

Preventing unwanted charge imports

If you're seeing unexpected ticket charges in your procurement queue, verify:

  • The product's "Does not require procurement" flag in Settings > Products

  • The billing code mapping for the product's category

User is not automatically linked

When a PSA sync runs, Salesbuildr attempts to match PSA users/contacts to Salesbuildr users by email address. If matching fails, the user exists in both systems but is not linked.

How user linking works

For ConnectWise:

  1. Salesbuildr fetches all active ConnectWise members

  2. For each member, it checks if a Salesbuildr user exists with a matching ConnectWise external identifier

  3. If no match by identifier, it tries matching by email address

  4. If still no match, a new Salesbuildr user is created with the ConnectWise member's details

  5. Only members with Regular Member or Subcontractor license class are synced — other license types are skipped

For Autotask:

  • Resources are matched by the Autotask external identifier on the Salesbuildr user record

  • If no external identifier match, the system falls back to email matching

For HaloPSA:

  • Users are matched using the HaloPSA external identifier

  • If no match exists, email-based matching is attempted

Resolution

  1. Check that the PSA user's email address exactly matches the Salesbuildr user's email (case-insensitive, trimmed)

  2. If emails don't match (e.g., the user has a different email in the PSA), manually link the user:

    • Navigate to Settings > Users & Permissions

    • Edit the user and ensure the correct email is set

    • Run a sync to re-attempt the match

  3. For ConnectWise: verify the user has a Regular Member or Subcontractor license — other license types are intentionally excluded

  4. If a user is linked to the wrong PSA contact, check the external identifiers on the user record — a sync may have created a duplicate instead of matching the existing record

  5. After fixing the email or identifier, run Settings > Integrations > [PSA] > Synchronize to trigger a re-sync

Company verification

After a user is linked to a company, the company link must be verified for the user to access company-specific features. This happens automatically during PSA sync for MSP users. For customer contacts, an admin may need to verify manually.

General troubleshooting steps

If none of the above issues match your situation:

  1. Check sync issues — go to Settings > Tools > Issues for a list of recent failures with error messages. Use Retry or Retry All to re-attempt failed operations

  2. Re-index — go to Settings > Tools > Maintenance > Re-index and re-index the affected entity type (products, opportunities, quotes, users, etc.)

  3. Review activity logs — go to Settings > Tools > Logs to see recent changes and identify what may have caused the issue

  4. Clear browser cache — for display or loading issues, clear your browser cache and reload

  5. Check API credentials — for integration errors, verify your PSA/distributor API credentials haven't expired. See PSA Configuration for sync and credential settings

  6. Report an incident — if the issue persists, check Platform Incidents for known outages or report a new issue

See also