MetaSync for Confluence — Documentation
Living Salesforce documentation in Confluence

← Documentation home

Troubleshooting & FAQ


Sync appears stuck or partial

A sync that seems to sit at a partial percentage for a while is almost always normal progress on a large org, not a hang. MetaSync’s sync engine runs in short, scheduled cycles and spreads a big org’s work across several of them. This section explains the model so you can tell when to wait from when to worry.

The five-minute cycle model

MetaSync runs a scheduled trigger about every five minutes. Each run works through a queue of small work items — one for objects (chunked into batches so no single item is too large), one for Flows and validation rules, one for Apex, several for org-configuration types (security, integration, UI, layouts, custom settings), one each for Profiles, Permission Sets and Reports, then field-detail pages and the Data Dictionary / Coverage / Setup Audit Trail pages. A single cycle chains through as many queue items as fit its time budget, then stops and lets the next cycle pick up where it left off.

Note — Why a big org takes several cycles. Each cycle has a hard time budget (the scheduled function stops starting new items well before its limit so runs never overlap). On a large org there are more queue items than fit in one cycle, so the first full sync legitimately spans multiple five-minute cycles. The progress bar advances between cycles rather than continuously — this is expected. See How syncing works.

Incremental syncs are much faster

Only the first sync (or one right after you change the destination space or structure mode) is a full extract. After that, MetaSync runs incrementally: before each run it probes which types actually changed since the last successful sync and skips the rest, so most scheduled syncs finish in a cycle or two. See Scheduled Syncs.

How large or heavy items are split

What “partial” status means

If the sync engine’s scheduled trigger is cut short while an item is mid-flight, that item is retried on the next cycle. An item is only abandoned after it has been cut short twice — the attempt counter is stamped before processing, so the third pickup sees attempts > 2 and skips it. (Two failed attempts, three pickups.) When that happens the run finishes and its Sync History entry is marked:

“One metadata type failed” (a degraded run)

This is different from a timeout skip. If a metadata type throws while extracting — a transient Salesforce error, a permissions change, a malformed component — MetaSync isolates the blast radius to that one type instead of letting an empty result be recorded as a complete extraction:

Note — How you’ll see it. The run is recorded with an error naming the type and cause (e.g. “miscIntegration: Extraction failed for: customLabels (…)”) rather than as a clean success — so a degraded run never masquerades as a good one. What to do: run another sync. A transient cause clears itself; a persistent one keeps naming the same type, which tells you where to look (usually a Salesforce permission on the integration user). See Sync History.

Note — A component the integration user can’t read is not a partial run. MetaSync separates a permanent read failure (an access error that will recur every run) from a transient one (retried first). A permanent one is disclosed on the type’s index — “N layouts not captured — no access”, naming each — and the run still completes normally, because otherwise an ungranted permission would hold every run at partial forever and force a full rewrite each time. If you want those components documented, grant the integration user read access (see Why is a component or type missing?) and re-sync. See “Not captured” on published pages.

When to wait vs when to worry

Note — Check Sync History for the real story. The Sync History view records each run’s status, duration, page create/update counts, per-type metadata counts, and any error message. It is the authoritative place to see whether a run succeeded, was partial, or failed — and exactly which type was skipped. See Sync History.


Re-authorizing your Salesforce org

How you repair a rejected connection depends on how it was made — the Connections tab offers the button that fits, so you don’t have to remember which you chose.

A sign-in connection holds a refresh token stored at connect time and exchanges it for a short-lived access token on each sync. If that refresh token is revoked or expires — someone removed the app’s authorization, the integration user was deactivated, the token was reset, or it simply aged out — MetaSync can’t authenticate and the sync stops until you re-authorize. Re-authorizing is a short flow: MetaSync reuses the app key and secret and the login URL already saved with the connection, so it asks for nothing but the Salesforce sign-in itself.

A Client Credentials Flow connection holds no token that can expire: it mints a fresh access token from the app’s key and secret on every run. What breaks it is a change in Salesforce — the secret rotated, the app replaced, the Client Credentials Flow unticked, or the Run As user deactivated. The repair is Update keys, a one-step dialog, and there is no sign-in involved.

How MetaSync detects a dead connection

When a sync fails to authenticate, MetaSync inspects the Salesforce error. Messages such as invalid_grant, expired access/refresh token, authentication failure, INVALID_SESSION_ID, invalid_client or inactive user are treated as an auth failure (not a transient glitch). The run is flagged accordingly so the UI can offer a one-click re-authorization rather than a generic error.

What you’ll see

Steps to re-authorize (sign-in connections)

  1. Open the MetaSync admin page (as a Confluence admin, or as a user holding the App admin role — see Permissions, scopes & data handling).
  2. Click Re-authorize Salesforce on the banner, or go to Connections and use Re-authorize in the header or on the org’s row.
  3. Step 1 of 2 summarises the connection MetaSync is about to re-authorize: its display name, org type, login host and a masked hint of the saved app key. Check it names the org you mean, then click Continue to Salesforce login.
  4. Step 2 of 2 — click Open Salesforce login and sign in as the integration user in the new tab, exactly as during Onboarding: from install to first sync. If Salesforce auto-signs you in as someone else from an existing browser session, choose Use a Different Account first: the refresh token belongs to whoever authorizes.
  5. Once authorized, run a sync (or wait for the next scheduled one). The incremental probe means only what changed since the last success is re-published.

Tip — Nothing is re-asked. Re-authorizing uses the app keys already saved with the connection — the ones you entered when you first connected, together with its login URL — so there are no credential fields to fill in and no chance of a typo. There is no destination step either: your space, home page title, page structure, managed-package choice, metadata scope and schedules are not part of this flow and are not written by it. The step-1 summary says the same thing on screen. See Connected Salesforce Org.

Note — If the app keys themselves changed. If the app’s secret was reset in Salesforce, or the External Client App itself was replaced, the saved keys can’t work and the re-authorization fails at Salesforce with invalid_client. Use the Connect a different org or enter new keys instead link on step 1: it switches to the full three-step flow, where the current keys can be pasted in. See The Salesforce login fails or shows an error.

Steps to update the keys (Client Credentials Flow connections)

  1. Open the MetaSync admin page (as a Confluence admin, or as a user holding the App admin role — see Permissions, scopes & data handling).
  2. Click Update app keys on the banner, or go to Connections and use Update keys in the header or on the org’s row.
  3. The dialog is a single step, titled Update app keys and naming the connected org. Paste the current app key and secret from the External Client App (Settings → OAuth Settings); the My Domain login URL is shown read-only from the saved connection, so there is nothing else to fill in.
  4. Click Test and save. MetaSync exchanges the pair for a token and saves it only once Salesforce accepts, so a mistyped secret can’t replace a working one. If Salesforce refuses, the message tells you which half of the setup to check — see The Salesforce login fails or shows an error.
  5. Run a sync (or wait for the next scheduled one). The incremental probe means only what changed since the last success is re-published.

Tip — Updating the keys touches nothing else. This dialog writes the app key and secret and nothing more: your Confluence space, home page title, page structure, managed-package choice, metadata scope and schedules are not part of it. It also stays on the same org — the login URL comes from the saved connection and is not editable here. To point MetaSync at a different org, use Switch org; see Switching to a different Salesforce org.

Note — If re-authorization keeps failing. A repeated failure usually points back to Salesforce. On a sign-in connection: confirm the External Client App (or Connected App) still exists and is authorized, the integration user is active, and the OAuth policy permits refresh tokens. On a Client Credentials Flow connection: confirm Enable Client Credentials Flow is still ticked on the app and that Policies → Client Credentials Flow → Run As names an active user. MetaSync only ever requests the api scope (plus refresh_token where a person signs in); what the connection can read is governed by that user’s Salesforce permissions.

Note — Changing orgs is a separate action. Both repairs above target the org already connected. To document a different org, use Switch org on the Connections tab instead — it asks for the new org’s connection method, keys and destination. See Switching to a different Salesforce org.


The Salesforce login fails or shows an error

Client Credentials Flow connecting is a two-party exchange: MetaSync posts the app’s key and secret to your My Domain URL and Salesforce answers with a token or a refusal, shown as a red banner on step 3. There is no browser tab and no callback, so only the first two entries below can apply.

Web Server Flow is a three-party handshake: MetaSync builds the login link, Salesforce shows its login page and sends you back to MetaSync’s Callback URL, and MetaSync exchanges the code it receives for a refresh token. Any party can refuse. Salesforce shows some refusals on its own page in the tab that opened (the code is in the address bar, as error=redirect_uri_mismatch and the like) and hands others back to MetaSync, which shows them as a red banner in the connect modal; if nothing comes back at all, MetaSync stops waiting after a few minutes and says so. Find the code or message you saw below.

Error codes and messages

Check the app you pasted the callback into

  1. In Salesforce Setup, open External Client App Manager (and App Manager for legacy Connected Apps) and list every app whose name resembles the one you created — a trial app, a colleague’s copy and a packaged app can all sit side by side.
  2. Open the one whose Consumer Key begins with the same characters as the key you pasted into MetaSync. That is the only app whose settings matter for this connection.
  3. On its OAuth settings, confirm the Callback URL shown in step 1 of the connect dialog (next to its Copy button) is present exactly, and that PKCE is on — the full checklist is in Onboarding: from install to first sync.
  4. If the Consumer Secret was reset since you copied it, copy the current one and start the connection again from step 1.

Note — Still stuck?. Walk the connection through once more with Onboarding: from install to first sync beside you — nearly every failed connect is one missing setting on the Salesforce app. A connection that worked and then stopped is a different problem: see Re-authorizing your Salesforce org.


Switching to a different Salesforce org

MetaSync documents one Salesforce org per Confluence site, so there is no “add a second org” — and, deliberately, no Disconnect or Delete-connection button either. Replacing the connected org has its own action: Switch org, on the Connections tab. It runs the full three-step connect dialog under the title Switch the connected org, with a warning that finishing it replaces the connection: the moment the new org accepts, its credentials overwrite the stored connection in place. It is a separate action from the repair buttons — Re-authorize and Update keys — which always target the org already connected (Re-authorizing your Salesforce org). This section walks through exactly how to switch, and what to expect afterwards.

Note — Why there is no Disconnect button. Because MetaSync is single-org, a connection is never deleted on its own — it is only ever replaced (by switching to another org) or purged entirely (by uninstalling the app, which removes all stored credentials and data — see Permissions, scopes & data handling). A standalone “disconnected” state would only stop scheduled syncs while leaving credentials behind, so the app doesn’t offer one. If you just want syncing to stop, remove the schedule instead — see Scheduled Syncs.

Before you switch

Switching step by step

  1. Open the MetaSync admin page (as a Confluence admin, or as a user holding the App admin role) and go to Connections.
  2. Choose Switch org in the header. The dialog opens on Switch the connected org, with a warning banner that completing it replaces the current connection.
  3. Step 1 of 3 — Salesforce app. Pick the Connection method for the new org first — it can differ from the one the old org used. On Client Credentials Flow, paste the new org’s My Domain login URL, Consumer Key, Consumer Secret and a display name. On Web Server Flow, the Callback URL sits at the top with a Copy button (the new org’s OAuth app needs it on its callback list), then pick the org type — Production / Developer (login.salesforce.com), Sandbox (test.salesforce.com), or My Domain URL if the new org blocks the shared login page (paste its https://<name>.my.salesforce.com address) — and enter the key, secret and display name. Click Next: Confluence destination.
  4. Step 2 of 3 — Confluence destination. The fields arrive prefilled from the current connection — the space, home page title, page structure and managed-package choice the old org publishes with. Change them here if the new org should publish somewhere else (read the warning below first); leave them as they are to publish into the same place. Next: Connect.
  5. Step 3 of 3 — connect. On Client Credentials Flow, click Test and connect and check the org name and Run As user it reports back are the new org’s. On Web Server Flow, click Open Salesforce login and make sure you sign into the new org — if Salesforce auto-signs you into the old org from an existing browser session, choose Use a Different Account (or log out of Salesforce first). Sign in as that org’s integration user.
  6. The moment the connection completes, the new org’s credentials replace the old ones — the old connection is gone and every future sync (manual or scheduled) reads the new org, publishing to the destination you confirmed in step 2.
  7. Run a sync (or wait for the next scheduled one) and review your metadata scope if you had selected specific objects.

What to expect after the switch

Warning — Syncing the new org into the old org’s space overwrites colliding pages. MetaSync updates pages by title within the destination space. If the new org publishes into the same space as the old one, any page whose title matches — the home page, category indexes like Objects or Flows, and any component with the same name (think Account, Contact, standard objects generally) — is rewritten with the new org’s content, while pages unique to the old org are simply left behind, stale and unlabeled. The two orgs’ documentation will silently interleave. Because step 2 arrives prefilled with the old org’s destination, publishing into the same space is what happens if you click straight past it. To keep a clean history, change step 2 to a different space (or at least a different parent page and home-page title), or archive the old pages first.

Starting completely clean instead

If you want to erase every trace of the old connection rather than overwrite it — credentials, tokens, sync snapshots, history, configuration and caches — uninstall MetaSync from Manage apps and reinstall it. A preUninstall routine purges all stored installation data from Forge storage before the app is removed, after which a fresh install starts with an empty slate and the normal Onboarding: from install to first sync flow. As always, uninstalling does not delete the Confluence pages that were published — remove those yourself if you want them gone. See Permissions, scopes & data handling.

Note — Related. Re-authorizing the same org after an expired or revoked token is covered in Re-authorizing your Salesforce org. The Connections tab itself — the connection table, the connect dialog’s three steps and the Edit destination modal — is documented in Connected Salesforce Org.


Rate limits & API errors

MetaSync reads a lot of metadata, so it is deliberately conservative about how hard it calls the Salesforce APIs. It batches requests, caps concurrency, and retries transient failures — so most rate-limit blips recover on their own without you doing anything.

How 429 / rate limits are handled

Note — Salesforce API consumption. A full first sync of a large org makes many read calls and will use a noticeable slice of that day’s API quota; incremental syncs afterward are far lighter because unchanged types are skipped. If your org is close to its daily API limit, prefer a less frequent schedule and a narrower scope — see Why is a component or type missing? and Scheduled Syncs.

What surfaces on failure


Why is a component or type missing?

If a component, or a whole metadata type, isn’t showing up in your documentation space, work down this checklist — the cause is almost always one of these, in roughly this order of likelihood.

Note — Still missing after all that?. Confirm a sync has actually run since you added the component or changed scope, and that it finished (not partial with that type skipped). A fresh Sync now after adjusting scope is the quickest way to force a re-check. If the page EXISTS but is missing a detail you expect — and the component itself has not changed in Salesforce — Sync now will not fix it: an incremental run only re-publishes components that changed, so an unchanged component keeps its older page. That is what Full resync is for. See Sync appears stuck or partial and Overview dashboard.


Removed & out-of-scope pages

MetaSync keeps your documentation honest when the underlying org changes — but it does so by labeling pages, never by deleting them. Two distinct situations are handled with two distinct banners.

Note — A page never gets a removal banner just because a sync failed. Removal detection only runs for a metadata type whose complete list was extracted this run. If a type fails to extract, it is demoted and no removals are reported for it — so a transient Salesforce error can’t banner every component of that type as deleted. See the degraded-run section in Sync appears stuck or partial.

A component was removed from Salesforce

When a sync’s change-detection notices that a component MetaSync previously documented is no longer in the org, it prepends a warning banner to that component’s existing page. The banner reads: **“Removed from Salesforce — this component was no longer found in the org when MetaSync synced on . The page is kept for history and will not be updated further."** The page stays in place (useful as a historical record) and the banner is idempotent, so re-syncs won't stack duplicates.

A page fell out of your sync scope

If you turn a metadata type off (or narrow object scope), the component may still exist in Salesforce — MetaSync just no longer documents it. The “Housekeeping — pages no longer in scope” tool (under the metadata scope settings) finds those now-unmaintained pages and lets you label them. It prepends a softer info note: **“Removed from sync scope — this metadata type was excluded from MetaSync’s sync selection on , so this page is no longer updated. The component may still exist in Salesforce."**

A leftover or duplicate page of a type you still sync

The same tool also finds pages of a still-enabled type published under a title that no longer matches any current component — the residue of a rename or a page-title change. They’re listed under the category Leftover / duplicate (detected for Profiles and Permission Sets), alongside a short list of recognised placeholder titles that never correspond to a real component, listed as Stale page. They get the same reversible info note as a de-scoped page (the note’s wording is shared, so it refers to the sync selection even on a leftover page) — the point is that a page you’d otherwise never notice stops looking like current documentation. See Metadata Types & scope for how detection works.

  1. Open the metadata scope settings and find Housekeeping — pages no longer in scope.
  2. Choose Find pages no longer in scope to scan. Candidates are listed with a category lozenge and nothing is pre-selected.
  3. Tick the pages you want flagged and choose Label N pages as no longer updated. MetaSync prepends the info note to each — it does not delete them.

Warning — MetaSync never deletes Confluence pages. By design, MetaSync only ever creates, updates, or annotates pages — including the removed-from-Salesforce and out-of-scope banners above. It never deletes a Confluence page. If you want a labeled page gone, delete it yourself in Confluence. (This is also true on uninstall — see Permissions, scopes & data handling.)

Note — Note the two banners are different. “Removed from Salesforce” (warning) = the component is gone from the org. “Removed from sync scope” (info) = you de-selected the type, or the page is a leftover/duplicate; the component may still exist. Team-annotation content on either page is preserved as always — see Managed regions & team annotations.


Permissions, scopes & data handling

MetaSync is a Forge app: it runs on Atlassian’s infrastructure, and everything it can do is declared up front in its manifest and reviewed by Atlassian. This section lays out exactly which permissions it holds, who can use it, and where your data goes.

Every Forge scope MetaSync requests

All ten scopes declared in manifest.yml, and why each is needed. A test fails if this table and the manifest disagree.

Scope Why MetaSync needs it
storage:app Store the Salesforce credentials, sync snapshots, history, configuration and caches for this installation, in Forge’s per-app storage.
read:page:confluence Read existing pages so MetaSync can find what it already published and update in place instead of creating duplicates.
write:page:confluence Create and update the documentation pages (and prepend the removed / out-of-scope banners). MetaSync writes nothing else to your pages; the only other writes it makes are the diagram attachments below and its own temporary access-check page.
delete:page:confluence Delete one page: the temporary MetaSync access check page the setup probe creates in your chosen space to prove it can publish there. Confluence’s v2 delete endpoint needs its own scope — write:page does not cover it. MetaSync never deletes a documentation page, or any page it did not create.
read:content-details:confluence Required together with write:attachment by Confluence’s create-or-update attachment endpoint; with the write scope alone it returns scope does not match.
write:attachment:confluence Upload the Flow diagrams and the ERD. They are rendered to SVG and attached to the page, because Confluence storage format strips inline <svg> — the image on the page points at the attachment.
read:space:confluence List spaces so you can pick a destination, and resolve the chosen space to publish into it.
read:user:confluence The admin gate (with read:group:confluence): the Confluence group-membership API requires both scopes; this one authorizes looking up the invoking user.
read:group:confluence The admin gate: read the invoking user’s Confluence group memberships to confirm they’re a Confluence admin before allowing any sync, configuration, or access-report action.
report:personal-data Atlassian’s personal data reporting API, which every app that stores Atlassian account IDs must use. Once a day MetaSync sends the account IDs it holds — the people under Additional access and the admin who connected Salesforce — and the time it recorded each. When Atlassian reports an account closed, MetaSync removes it; nothing else is sent.

Who can use the admin page

Only Confluence administrators can operate MetaSync. Every sensitive resolver checks the caller’s group memberships (via read:user:confluence + read:group:confluence) and allows the call only if they belong to an admin group. The check fails closed — any error or missing membership is treated as “not an admin”. Someone who is neither an admin nor granted access sees a notice headed “MetaSync is managed by Confluence admins” — but the documentation pages MetaSync publishes are still available in the Confluence space like any other page.

Granting access and roles to non-admins

An admin can allow-list named users or groups under Connections → Additional access, giving each granted user one of two roles. A Viewer sees only Overview, Change impact, Governance, Sync history and Documentation; Metadata types, Schedules and Connections are hidden, and within the visible pages the configuration actions (build a governance snapshot or ZIP, build an access snapshot, mark a change reviewed, connect an org) render disabled with an explanation instead of failing on click. Granted groups are always viewers.

An App admin gets the full dashboard and can do everything a Confluence admin can do inside MetaSync — connect or replace the Salesforce org, edit the destination, set the metadata scope, manage schedules, run and cancel syncs, change notification settings and build every report. This is the role to use when the Confluence admin doesn’t administer Salesforce and needs someone else to create the External Client App and complete the OAuth connection.

Note — The UI is a convenience, not the control. Hiding and disabling controls only prevents dead ends. The gated resolvers reject an under-privileged caller server-side regardless of what the UI shows. The grant list and the role assignments can only be read or edited by a real Confluence admin — an App admin can never change who has access, including their own role, so the role cannot be used to escalate or to lock admins out.

Warning — Additional access ≠ access to the published pages. Additional access governs the MetaSync app only. It has no bearing on the documentation pages MetaSync publishes into Confluence: those are ordinary Confluence pages, governed entirely by space permissions. Granting someone access here does not give them the pages, and leaving someone off the list does not hide the pages from them — someone with no MetaSync access at all can still read every published page if they can see the space. To restrict the documentation, restrict the destination space in Confluence.

Note — “Restricted to Confluence admins” after an update. The admin gate uses scopes (read:user:confluence, read:group:confluence) that may have been added in an update. If an admin suddenly can’t access MetaSync, the app’s updated permissions likely need approval: go to Manage apps → MetaSync and approve the requested access.

Where your data goes

The data path is deliberately short and one-directional: Salesforce → MetaSync (Forge) → Confluence pages. MetaSync reads metadata from Salesforce, transforms it inside the Forge runtime, and writes pages into your Confluence space. It reads your org’s configuration, not your business records, and it is read-only in behaviour: the app issues no create, update, deploy or delete call against Salesforce, ever. Be precise about what carries that guarantee, though — the api OAuth token itself is not write-blocked, because Salesforce offers no read-only or metadata-only scope. What MetaSync does with the token is one-way by construction; what the token could do is bounded by the integration user’s permissions. See Why the integration user cannot read records.

Note — Outbound network destinations. MetaSync’s manifest permits outbound calls to Salesforce OAuth/API endpoints (login.salesforce.com, test.salesforce.com, *.my.salesforce.com, *.salesforce.com) plus the Confluence Cloud API it runs on. The only other destinations are the optional notification webhooks you configure yourself: Slack (hooks.slack.com) and Microsoft Teams via Power Automate (*.logic.azure.com, *.powerplatform.com). These are opt-in and off by default — no request is ever made unless you paste a webhook URL under Connections → Notifications. Even then the body is a status-only line (org name, sync status, truncated error, run id, page counts, per-type counts, duration) and never any Salesforce record content.

Where credentials and tokens live

What MetaSync holds depends on how the org was connected, and both possibilities live in the same place. A sign-in connection stores a Salesforce refresh token, used only to obtain short-lived access tokens at sync time; when Salesforce rotates that token on a refresh, MetaSync stores the replacement and re-reads the newest stored one before the next refresh. A Client Credentials Flow connection stores the app key and secret instead and exchanges those for an access token directly — there is no refresh token in it at all. Either credential, along with the connection details, is held in Forge’s app storage, keyed per installation. Access tokens are cached briefly (with a safety margin before expiry) to avoid over-calling the OAuth endpoint. Nothing is stored outside Forge, and credentials are never written into Confluence pages.

What happens on uninstall

MetaSync registers a Forge preUninstall handler that runs before the app is removed. It calls a routine that purges all installation data — Salesforce credentials and tokens, snapshots, sync history, configuration and caches — from Forge storage, so nothing is left orphaned. This is what backs the deletion-on-uninstall guarantee. As everywhere else, uninstalling does not delete any Confluence pages you’ve published; if you want the documentation gone, remove those pages yourself. See Removed & out-of-scope pages.


Live View: “You don’t have access to this data”

A viewer opens Live View and sees an informational panel headed “You don’t have access to this data” with a Retry button, instead of the tables and diagrams. This is a permission outcome, not a fault — nothing is broken and no sync is needed.

Why it happens

Note — If they declined the “Allow access” prompt. Ask them to reload the page and accept the prompt when it reappears, then click Retry in the panel. If it doesn’t reappear, opening the page in a new browser tab (or a fresh session) will re-ask. Accepting grants MetaSync nothing beyond the ability to check that viewer’s Confluence access — it never grants access to Salesforce, and Live View still shows only what your last sync documented.

Warning — One panel, not five errors. The denial is rendered once for the whole macro, so clicking between the five tabs won’t stack up repeated messages. Genuine failures (a storage read that broke) still show as a red Error: … on the affected tab — if you see that instead, it isn’t a permission problem.

Related: Live View overview · Permissions, scopes & data handling · Additional access.


FAQ

Note — Didn’t find your answer?. Start troubleshooting from the symptom: a slow or partial run → Sync appears stuck or partial; a login or callback error while connecting → The Salesforce login fails or shows an error; a connection that worked and then stopped → Re-authorizing your Salesforce org; changing which org is connected → Switching to a different Salesforce org; API errors → Rate limits & API errors; a missing component → Why is a component or type missing?. For the basics, revisit What is MetaSync? and Onboarding: from install to first sync.