Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.
Practical fixes for the most common problems customers hit during integration and production use.
Leaf tokens expire after 30 days. If you get a 401 Unauthorized response, generate a new token. Your application should handle token refresh automatically rather than relying on a hardcoded token.
If you can’t find Leaf users, fields, or files you expect to see, confirm you’re authenticating with the correct API owner email. Test and production environments should use separate API owners (e.g., leaf-test@yourcompany.com and leaf-prod@yourcompany.com). There is no shared sandbox — you manage environment separation yourself.
Every provider requires its own license agreement and potentially detailed commercial agreements before you can pull data through Leaf. Leaf cannot grant you access to a provider’s API — you must finalize those steps with each provider directly.Common causes of credential failures:
The OAuth token expired or was revoked by the grower. Check the credentials events endpoint for the specific provider to see the error.
The provider application hasn’t been approved yet (John Deere requires app verification through their marketplace).
The grower hasn’t granted the required scopes/permissions in the provider’s consent flow.
Use provider sync for ongoing data ingestion where a Leaf user has valid credentials. Use manual upload for historical data (e.g., from a USB drive), unsupported providers, or older offline file formats. Both methods produce the same standard GeoJSON output.
Field operations require field boundaries. Without a boundary, Leaf still converts machine files and produces file summaries, but cannot create field operations.Check:
Does the Leaf user have fields with active boundaries?
Do the machine files’ GPS coordinates fall within those boundaries?
Has enough time passed for processing to complete? Use the file status endpoint to verify.
Use customDataSync to preview and selectively process certain fields instead of syncing everything from a provider. This controls costs and avoids pulling unneeded data.For John Deere specifically, organizationDataSync limits which organizations Leaf pulls from.
Alert payloads contain event metadata, not the full resource. Use the IDs in the payload to fetch the complete data from the relevant endpoint (e.g., get file, get operation).
Leaf charges based on spatially unique acres processed per Leaf user. The charge is triggered when data is pulled and processed by Leaf, not when you query or download the processed data. Re-downloading the same data does not incur additional charges.Re-processing identical data under new Leaf users counts multiple times. Be careful when re-creating Leaf users or moving credentials between users.
Contact your Leaf CSM for billing or commercial questions
Last modified on March 24, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Leaf Documentation","colors":{"primary":"#00886b","light":"#07C983","dark":"#00886b"},"logo":{"light":"https://mintcdn.com/leaf-3ed5893a/to88HRn_L8ezHDrX/logo/light.png?fit=max\u0026auto=format\u0026n=to88HRn_L8ezHDrX\u0026q=85\u0026s=8ce24e422c9bf087336b65351eb51f4c","dark":"https://mintcdn.com/leaf-3ed5893a/to88HRn_L8ezHDrX/logo/dark.png?fit=max\u0026auto=format\u0026n=to88HRn_L8ezHDrX\u0026q=85\u0026s=7c5b24b746c2c02501ac6fea486c3a51","href":"https://withleaf.io/"},"favicon":"https://mintcdn.com/leaf-3ed5893a/to88HRn_L8ezHDrX/favicon.png?fit=max\u0026auto=format\u0026n=to88HRn_L8ezHDrX\u0026q=85\u0026s=a435f8f25c1ed914dc32b03c92d844cd","appearance":{"default":"light"},"background":{"color":{"light":"#ffffff","dark":"#18191a"}},"navbar":{"links":[{"icon":"github","href":"https://status.withleaf.io","label":"API Status"},{"href":"https://dashboard.withleaf.io","label":"Log In"}],"primary":{"type":"button","label":"Request Demo","href":"https://withleaf.io/account/get-a-demo"}},"footer":{"socials":{"instagram":"https://www.instagram.com/withleaf_","linkedin":"https://www.linkedin.com/company/leaf-agriculture","x":"https://twitter.com/LeafAgriculture","youtube":"https://www.youtube.com/@leafagriculture7933"}},"seo":{"metatags":{"robots":"noindex"},"indexing":"navigable"},"fonts":{"heading":{"family":"Satoshi","source":"https://cdn.fontshare.com/wf/P2LQKHE6KA6ZP4AAGN72KDWMHH6ZH3TA/ZC32TK2P7FPS5GFTL46EU6KQJA24ZYDB/7AHDUZ4A7LFLVFUIFSARGIWCRQJHISQP.woff2","format":"woff2"},"body":{"family":"Inter"}},"integrations":{"mixpanel":{"projectToken":"2aa8982706dc53402184ef7b6e555d32"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"About Us","icon":"circle-user","href":"https://withleaf.io/company"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"leaf-3ed5893a","hasAudioNarration":false,"actualSubdomain":"leaf-3ed5893a","customDomains":["docs.withleaf.io"],"gitSource":{"type":"github","owner":"leaf-agriculture","repo":"docs-v2","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea55583593d9bacc3250df","collectionId":"c5ff0339-6713-4bbb-8aca-078af8401d84","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea55583593d9bacc3250df"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aebb176bb99e4d1e9f33f01","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Documentation","count":58},{"language":"default","tag":"API Reference","count":25},{"language":"default","tag":"Guides","count":21},{"language":"default","tag":"Tutorials","count":16},{"language":"default","tag":"Connecting Providers","count":16},{"language":"default","tag":"Beta","count":10},{"language":"default","tag":"Data Hierarchy","count":9},{"language":"default","tag":"OEM and Provider Integrations","count":8},{"language":"default","tag":"Machine Data","count":6},{"language":"default","tag":"Resources","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"help@withleaf.io","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles/globals.css","content":".get,.post,.put,.patch,.delete{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase;font-family:monospace}.get{background-color:#00866d;color:white}.post{background-color:#edc043;color:white}.patch{background-color:#edc043;color:white}.delete{background-color:#f25925;color:white}.put{background-color:#edc043;color:white}"}],"page":{"pagePath":"resources/troubleshooting","slug":"/resources/troubleshooting","pageMetadata":{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","description":"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.","href":"/resources/troubleshooting"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Practical fixes for the most common problems customers hit during integration and production use.`}),`\n`,_jsx(Heading,{level:`2`,id:`authentication-issues`,children:`Authentication issues`}),`\n`,_jsx(Heading,{level:`3`,id:`token-expired-or-invalid`,children:`Token expired or invalid`}),`\n`,_jsxs(_components.p,{children:[`Leaf tokens expire after 30 days. If you get a `,_jsx(_components.code,{children:`401 Unauthorized`}),` response, generate a new token. Your application should handle token refresh automatically rather than relying on a hardcoded token.`]}),`\n`,_jsx(Heading,{level:`3`,id:`wrong-api-owner`,children:`Wrong API owner`}),`\n`,_jsxs(_components.p,{children:[`If you can’t find Leaf users, fields, or files you expect to see, confirm you’re authenticating with the correct API owner email. Test and production environments should use separate API owners (e.g., `,_jsx(_components.code,{children:`leaf-test@yourcompany.com`}),` and `,_jsx(_components.code,{children:`leaf-prod@yourcompany.com`}),`). There is no shared sandbox — you manage environment separation yourself.`]}),`\n`,_jsx(Heading,{level:`2`,id:`provider-connection-issues`,children:`Provider connection issues`}),`\n`,_jsx(Heading,{level:`3`,id:`provider-credentials-not-working`,children:`Provider credentials not working`}),`\n`,_jsx(_components.p,{children:`Every provider requires its own license agreement and potentially detailed commercial agreements before you can pull data through Leaf. Leaf cannot grant you access to a provider’s API — you must finalize those steps with each provider directly.`}),`\n`,_jsx(_components.p,{children:`Common causes of credential failures:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The OAuth token expired or was revoked by the grower. Check the credentials events endpoint for the specific provider to see the error.`}),`\n`,_jsx(_components.li,{children:`The provider application hasn’t been approved yet (John Deere requires app verification through their marketplace).`}),`\n`,_jsx(_components.li,{children:`The grower hasn’t granted the required scopes/permissions in the provider’s consent flow.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`john-deere-connections`,children:`John Deere connections`}),`\n`,_jsx(_components.p,{children:`John Deere is the most common source of connection issues:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You need a separate agreement with John Deere before connecting. Contact your Leaf CSM if you’re unsure about requirements.`}),`\n`,_jsx(_components.li,{children:`Use the John Deere credentials events endpoint to check for specific error messages.`}),`\n`,_jsxs(_components.li,{children:[`If you need to limit data by organization, use `,_jsx(_components.code,{children:`organizationDataSync`}),` to scope which John Deere organizations Leaf pulls from.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`climate-fieldview-connections`,children:`Climate FieldView connections`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Climate FieldView credentials use OAuth2. If the grower’s token is revoked, you need to re-run the consent flow.`}),`\n`,_jsx(_components.li,{children:`Check the Climate FieldView credentials events endpoint for connection status.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`cnhi-connections`,children:`CNHi connections`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Similar to other providers, CNHi requires its own access agreement.`}),`\n`,_jsx(_components.li,{children:`Use the CNHi credentials events endpoint to inspect connection errors.`}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`For any provider, the credentials events endpoint is the first place to look when a connection fails. It gives you the specific error and timestamp.`})}),`\n`,_jsx(Heading,{level:`2`,id:`file-processing-issues`,children:`File processing issues`}),`\n`,_jsx(Heading,{level:`3`,id:`machine-files-stuck-in-“processing”`,children:`Machine files stuck in “processing”`}),`\n`,_jsxs(_components.p,{children:[`Files normally process within minutes. If a file stays in `,_jsx(_components.code,{children:`processing`}),` for an extended period:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Check the file status endpoint — it shows the processing state for each pipeline step (standardGeojson, cleanupGeojson, summary, units, etc.).`}),`\n`,_jsxs(_components.li,{children:[`Look for a specific step that shows `,_jsx(_components.code,{children:`failed`}),` with an error message.`]}),`\n`,_jsxs(_components.li,{children:[`If the file format is unsupported or corrupt, processing fails. Check the `,_jsx(_components.code,{children:`originalFile`}),` step status.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`file-processing-failed`,children:`File processing failed`}),`\n`,_jsx(_components.p,{children:`The file status endpoint returns per-step status. Common failure causes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Unsupported file format or corrupt data.`}),`\n`,_jsxs(_components.li,{children:[`Crop type not recognized — if the crop from your machine file doesn’t appear in the `,_jsx(_components.a,{href:`/resources/crops-table`,children:`crops table`}),`, contact `,_jsx(_components.a,{href:`mailto:support@withleaf.io`,children:`support@withleaf.io`}),`.`]}),`\n`,_jsx(_components.li,{children:`The file contained no valid GPS data points.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`when-to-upload-manually-vs-use-provider-sync`,children:`When to upload manually vs. use provider sync`}),`\n`,_jsx(_components.p,{children:`Use provider sync for ongoing data ingestion where a Leaf user has valid credentials. Use manual upload for historical data (e.g., from a USB drive), unsupported providers, or older offline file formats. Both methods produce the same standard GeoJSON output.`}),`\n`,_jsx(Heading,{level:`2`,id:`data-not-appearing`,children:`Data not appearing`}),`\n`,_jsx(Heading,{level:`3`,id:`no-field-operations-generated`,children:`No field operations generated`}),`\n`,_jsx(_components.p,{children:`Field operations require field boundaries. Without a boundary, Leaf still converts machine files and produces file summaries, but cannot create field operations.`}),`\n`,_jsx(_components.p,{children:`Check:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Does the Leaf user have fields with active boundaries?`}),`\n`,_jsx(_components.li,{children:`Do the machine files’ GPS coordinates fall within those boundaries?`}),`\n`,_jsx(_components.li,{children:`Has enough time passed for processing to complete? Use the file status endpoint to verify.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`duplicate-billing-from-duplicate-connections`,children:`Duplicate billing from duplicate connections`}),`\n`,_jsx(_components.p,{children:`If the same data is processed under different Leaf users, each user’s acreage counts toward your total usage. This happens when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The same grower’s credentials are attached to multiple Leaf users.`}),`\n`,_jsx(_components.li,{children:`The same boundary is connected under multiple Leaf users.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Prevent this by assigning one Leaf user per actual customer and using test accounts during development.`}),`\n`,_jsx(Heading,{level:`3`,id:`too-much-data-syncing`,children:`Too much data syncing`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`customDataSync`}),` to preview and selectively process certain fields instead of syncing everything from a provider. This controls costs and avoids pulling unneeded data.`]}),`\n`,_jsxs(_components.p,{children:[`For John Deere specifically, `,_jsx(_components.code,{children:`organizationDataSync`}),` limits which organizations Leaf pulls from.`]}),`\n`,_jsx(Heading,{level:`2`,id:`webhook-alerts-issues`,children:`Webhook (alerts) issues`}),`\n`,_jsx(Heading,{level:`3`,id:`not-receiving-webhooks`,children:`Not receiving webhooks`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Confirm your alert URL is registered and active — list your alerts to verify.`}),`\n`,_jsxs(_components.li,{children:[`Your endpoint must return a `,_jsx(_components.code,{children:`2xx`}),` response. If it returns an error, Leaf retries with backoff but eventually stops.`]}),`\n`,_jsxs(_components.li,{children:[`Check that your server is publicly accessible. Leaf cannot reach `,_jsx(_components.code,{children:`localhost`}),` or private networks.`]}),`\n`,_jsx(_components.li,{children:`Verify there’s no firewall or WAF blocking Leaf’s requests.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`webhook-payloads-not-matching-expectations`,children:`Webhook payloads not matching expectations`}),`\n`,_jsx(_components.p,{children:`Alert payloads contain event metadata, not the full resource. Use the IDs in the payload to fetch the complete data from the relevant endpoint (e.g., get file, get operation).`}),`\n`,_jsx(Heading,{level:`2`,id:`billing-questions`,children:`Billing questions`}),`\n`,_jsx(Heading,{level:`3`,id:`how-billing-works`,children:`How billing works`}),`\n`,_jsx(_components.p,{children:`Leaf charges based on spatially unique acres processed per Leaf user. The charge is triggered when data is pulled and processed by Leaf, not when you query or download the processed data. Re-downloading the same data does not incur additional charges.`}),`\n`,_jsx(_components.p,{children:`Re-processing identical data under new Leaf users counts multiple times. Be careful when re-creating Leaf users or moving credentials between users.`}),`\n`,_jsx(Heading,{level:`3`,id:`checking-usage`,children:`Checking usage`}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/api-reference/billing`,children:`billing contracts`}),` endpoints to view your current contracts and consumption. The consumption range endpoint shows daily usage breakdowns.`]}),`\n`,_jsx(Heading,{level:`2`,id:`getting-help`,children:`Getting help`}),`\n`,_jsx(_components.p,{children:`If your issue isn’t covered here:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Email support: `,_jsx(_components.a,{href:`mailto:help@withleaf.io`,children:`help@withleaf.io`})]}),`\n`,_jsx(_components.li,{children:`Contact your Leaf CSM for billing or commercial questions`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","description":"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.","href":"/resources/troubleshooting"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication issues","slug":"authentication-issues","depth":2,"children":[{"title":"Token expired or invalid","slug":"token-expired-or-invalid","depth":3,"children":[]},{"title":"Wrong API owner","slug":"wrong-api-owner","depth":3,"children":[]}]},{"title":"Provider connection issues","slug":"provider-connection-issues","depth":2,"children":[{"title":"Provider credentials not working","slug":"provider-credentials-not-working","depth":3,"children":[]},{"title":"John Deere connections","slug":"john-deere-connections","depth":3,"children":[]},{"title":"Climate FieldView connections","slug":"climate-fieldview-connections","depth":3,"children":[]},{"title":"CNHi connections","slug":"cnhi-connections","depth":3,"children":[]}]},{"title":"File processing issues","slug":"file-processing-issues","depth":2,"children":[{"title":"Machine files stuck in “processing”","slug":"machine-files-stuck-in-“processing”","depth":3,"children":[]},{"title":"File processing failed","slug":"file-processing-failed","depth":3,"children":[]},{"title":"When to upload manually vs. use provider sync","slug":"when-to-upload-manually-vs-use-provider-sync","depth":3,"children":[]}]},{"title":"Data not appearing","slug":"data-not-appearing","depth":2,"children":[{"title":"No field operations generated","slug":"no-field-operations-generated","depth":3,"children":[]},{"title":"Duplicate billing from duplicate connections","slug":"duplicate-billing-from-duplicate-connections","depth":3,"children":[]},{"title":"Too much data syncing","slug":"too-much-data-syncing","depth":3,"children":[]}]},{"title":"Webhook (alerts) issues","slug":"webhook-alerts-issues","depth":2,"children":[{"title":"Not receiving webhooks","slug":"not-receiving-webhooks","depth":3,"children":[]},{"title":"Webhook payloads not matching expectations","slug":"webhook-payloads-not-matching-expectations","depth":3,"children":[]}]},{"title":"Billing questions","slug":"billing-questions","depth":2,"children":[{"title":"How billing works","slug":"how-billing-works","depth":3,"children":[]},{"title":"Checking usage","slug":"checking-usage","depth":3,"children":[]}]},{"title":"Getting help","slug":"getting-help","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"leaf-3ed5893a","siteName":"Leaf Documentation","title":"Troubleshooting - Leaf Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-24T13:10:53.924Z","gitLastModified":"2026-03-24T13:10:32.000Z","originalFileLocation":"resources/troubleshooting.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Leaf Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Troubleshooting - Leaf Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Leaf Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.withleaf.io/resources/troubleshooting\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://leaf-3ed5893a.mintlify.app/_mintlify/api/og/v2?division=Resources\u0026amp;title=Troubleshooting\u0026amp;description=Common+issues+and+fixes+for+Leaf+API+integrations%3A+authentication+errors%2C+provider+connection+problems%2C+file+processing+failures%2C+missing+data%2C+and+webhooks.\u0026amp;theme=df28ea0c62b563cc8e5aedca\u0026amp;signature=c851872300f13549809d208ab0bdd253e1a76df67b606e108b6d05761d553923\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Troubleshooting - Leaf Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://leaf-3ed5893a.mintlify.app/_mintlify/api/og/v2?division=Resources\u0026amp;title=Troubleshooting\u0026amp;description=Common+issues+and+fixes+for+Leaf+API+integrations%3A+authentication+errors%2C+provider+connection+problems%2C+file+processing+failures%2C+missing+data%2C+and+webhooks.\u0026amp;theme=df28ea0c62b563cc8e5aedca\u0026amp;signature=c851872300f13549809d208ab0bdd253e1a76df67b606e108b6d05761d553923\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/leaf-3ed5893a/IA--hOPjRaQAEcyW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Leaf Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00886b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.withleaf.io/resources/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/resources/troubleshooting.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.withleaf.io/#organization\",\"name\":\"Leaf Documentation\",\"url\":\"https://docs.withleaf.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/leaf-3ed5893a/to88HRn_L8ezHDrX/logo/light.png?fit=max\u0026auto=format\u0026n=to88HRn_L8ezHDrX\u0026q=85\u0026s=8ce24e422c9bf087336b65351eb51f4c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.withleaf.io#website\",\"name\":\"Leaf Documentation\",\"url\":\"https://docs.withleaf.io\",\"publisher\":{\"@id\":\"https://docs.withleaf.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.withleaf.io/resources/troubleshooting#webpage\",\"url\":\"https://docs.withleaf.io/resources/troubleshooting\",\"name\":\"Troubleshooting\",\"description\":\"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\",\"dateModified\":\"2026-03-24T13:10:32.000Z\",\"isPartOf\":{\"@id\":\"https://docs.withleaf.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.withleaf.io/resources/troubleshooting#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.withleaf.io/resources/troubleshooting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Resources\",\"item\":\"https://docs.withleaf.io/resources/glossary\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting\",\"item\":\"https://docs.withleaf.io/resources/troubleshooting\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.withleaf.io/resources/troubleshooting#article\",\"headline\":\"Troubleshooting\",\"name\":\"Troubleshooting\",\"description\":\"Common issues and fixes for Leaf API integrations: authentication errors, provider connection problems, file processing failures, missing data, and webhooks.\",\"url\":\"https://docs.withleaf.io/resources/troubleshooting\",\"mainEntityOfPage\":{\"@id\":\"https://docs.withleaf.io/resources/troubleshooting#webpage\"},\"dateModified\":\"2026-03-24T13:10:32.000Z\",\"publisher\":{\"@id\":\"https://docs.withleaf.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.withleaf.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Leaf Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Leaf Documentation","nav":{"global":{"anchors":[{"anchor":"About Us","icon":"circle-user","href":"https://withleaf.io/company"}]},"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/getting-started/welcome"}]},{"tab":"Guides","icon":"lightbulb","pages":[{"title":"Guides","href":"/guides/by-use-case/managed-service-provider"}]},{"tab":"API Reference","icon":"code-simple","pages":[{"title":"API Reference","href":"/api-reference/authentication"}]},{"tab":"Resources","icon":"books","groups":[{"group":"Resources","pages":[{"title":"Glossary","sidebarTitle":"Glossary","href":"/resources/glossary"},{"title":"Crop Reference Table","sidebarTitle":"Crops Table","description":"Reference of common crop names and standard moisture values used in Leaf harvest output.","href":"/resources/crops-table"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/resources/troubleshooting"}]}]}]},"basePath":"","title":"Troubleshooting - Leaf Documentation","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}