[Dashboard] Fix panel infinite loading on error bug #257188
Merged
MiloszRadzynski merged 2 commits intoelastic:mainfrom Mar 12, 2026
Merged
Conversation
Contributor
Author
|
/ci |
Contributor
💔 Build Failed
Failed CI Steps
Test Failures
Metrics [docs]Page load bundle
History |
Contributor
Author
|
/ci |
Contributor
|
Pinging @elastic/kibana-presentation (Team:Presentation) |
nreese
approved these changes
Mar 11, 2026
Contributor
nreese
left a comment
There was a problem hiding this comment.
LGTM - thanks for putting up a fix for this issue
code review only
davismcphee
approved these changes
Mar 12, 2026
Contributor
davismcphee
left a comment
There was a problem hiding this comment.
Code changes look good, and I did some local testing with the Discover embeddable to confirm it works as expected. Thanks for the fix!
Contributor
|
Starting backport for target branches: 9.1, 9.2, 9.3 |
Contributor
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
nreese
pushed a commit
to nreese/kibana
that referenced
this pull request
Mar 12, 2026
## Summary When buildEmbeddable threw an error, the onApiAvailable callback was never called. This meant the parent (e.g., a dashboard) never received the API reference for the failed panel, causing it to get stuck in an infinite loading state. The fix adds the missing onApiAvailable?.(errorApi) call inside the catch block so consumers always receive an API — even on failure. This PR also adds additional test cases for it. Demo instance: https://miloszradzynski-pr-257188-fix-infinite-loader-issue-in-disc.kbndev.co/ Closes: elastic#256803 ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels.
sorenlouv
pushed a commit
that referenced
this pull request
Mar 17, 2026
## Summary When buildEmbeddable threw an error, the onApiAvailable callback was never called. This meant the parent (e.g., a dashboard) never received the API reference for the failed panel, causing it to get stuck in an infinite loading state. The fix adds the missing onApiAvailable?.(errorApi) call inside the catch block so consumers always receive an API — even on failure. This PR also adds additional test cases for it. Demo instance: https://miloszradzynski-pr-257188-fix-infinite-loader-issue-in-disc.kbndev.co/ Closes: #256803 ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels.
jeramysoucy
pushed a commit
to jeramysoucy/kibana
that referenced
this pull request
Mar 26, 2026
## Summary When buildEmbeddable threw an error, the onApiAvailable callback was never called. This meant the parent (e.g., a dashboard) never received the API reference for the failed panel, causing it to get stuck in an infinite loading state. The fix adds the missing onApiAvailable?.(errorApi) call inside the catch block so consumers always receive an API — even on failure. This PR also adds additional test cases for it. Demo instance: https://miloszradzynski-pr-257188-fix-infinite-loader-issue-in-disc.kbndev.co/ Closes: elastic#256803 ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When buildEmbeddable threw an error, the onApiAvailable callback was never called. This meant the parent (e.g., a dashboard) never received the API reference for the failed panel, causing it to get stuck in an infinite loading state. The fix adds the missing onApiAvailable?.(errorApi) call inside the catch block so consumers always receive an API — even on failure. This PR also adds additional test cases for it.
The bug currently affects only the Serverless
Demo instance: https://miloszradzynski-pr-257188-fix-infinite-loader-issue-in-disc.kbndev.co/
Closes: #256803
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesbackport:*labels.Release notes:
Fixes an issue in Dashboard where panels could get stuck in an infinite loading state after an error, so the user now sees error messages instead of endless loading.