[PR #17320] fix: improve error handling and default values in fetchPlan function #28674

Closed
opened 2026-02-21 20:43:54 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/17320

State: closed
Merged: Yes


Summary

improve error handling and default values in fetchPlan function

the error is:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'enabled')
    at fetchPlan (provider-context.tsx:117:43)
fetchPlan @ provider-context.tsx:117
await in fetchPlan
ProviderContextProvider.useEffect @ provider-context.tsx:130
react-stack-bottom-frame @ react-dom-client.development.js:24036
runWithFiberInDEV @ react-dom-client.development.js:1511
commitHookEffectListMount @ react-dom-client.development.js:10515
commitHookPassiveMountEffects @ react-dom-client.development.js:10636
commitPassiveMountOnFiber @ react-dom-client.development.js:12442
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12445
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12435
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12558
recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416
commitPassiveMountOnFiber @ react-dom-client.development.js:12454
flushPassiveEffects @ react-dom-client.development.js:15796
flushPendingEffects @ react-dom-client.development.js:15761
flushSpawnedWork @ react-dom-client.development.js:15656
commitRoot @ react-dom-client.development.js:15391
onUnsuspend @ react-dom-client.development.js:20447Understand this errorAI
provider-context.tsx:117 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'enabled')
    at fetchPlan (provider-context.tsx:117:43) 

Tip

Close issue syntax: Fixes #<issue number> or Resolves #<issue number>, see documentation for more details.

Screenshots

Before After
... ...

Checklist

Important

Please review the checklist below before submitting your pull request.

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/17320 **State:** closed **Merged:** Yes --- # Summary improve error handling and default values in fetchPlan function the error is: ``` Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'enabled') at fetchPlan (provider-context.tsx:117:43) fetchPlan @ provider-context.tsx:117 await in fetchPlan ProviderContextProvider.useEffect @ provider-context.tsx:130 react-stack-bottom-frame @ react-dom-client.development.js:24036 runWithFiberInDEV @ react-dom-client.development.js:1511 commitHookEffectListMount @ react-dom-client.development.js:10515 commitHookPassiveMountEffects @ react-dom-client.development.js:10636 commitPassiveMountOnFiber @ react-dom-client.development.js:12442 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12445 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12435 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12558 recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12416 commitPassiveMountOnFiber @ react-dom-client.development.js:12454 flushPassiveEffects @ react-dom-client.development.js:15796 flushPendingEffects @ react-dom-client.development.js:15761 flushSpawnedWork @ react-dom-client.development.js:15656 commitRoot @ react-dom-client.development.js:15391 onUnsuspend @ react-dom-client.development.js:20447Understand this errorAI provider-context.tsx:117 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'enabled') at fetchPlan (provider-context.tsx:117:43) ``` > [!Tip] > Close issue syntax: `Fixes #<issue number>` or `Resolves #<issue number>`, see [documentation](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) for more details. # Screenshots | Before | After | |--------|-------| | ... | ... | # Checklist > [!IMPORTANT] > Please review the checklist below before submitting your pull request. - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:43:54 -05:00
yindo closed this issue 2026-02-21 20:43:54 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#28674