Hi there! Is good data dashboard having issues rig...
# gooddata-cloud
j
Hi there! Is good data dashboard having issues right now? Mine is not loading data. I am trying to debug. Just checking if anyone having issues as well
👆 2
Checking if its some kind of certificate issue. I am currently getting infinite loading
d
We are also seeing an issue
j
Screenshot 2025-06-26 at 8.55.23 am.png
m
Hi Joaquim and Dustin, thank you for reaching out us. We are currently experiencing some problems with IAD1. Please stay tuned to it, we're currently working on a fix at the highest priority, but do not have an ETA yet. Thank you for your understanding.
👍🏽 1
👍 3
a
Hi @Mauricio Cabezas - please keep us posted, our dashboards are failing to load across all environments. I have submitted a support ticket as well. Thanks!
It would be great if these outages could be reported on the status page as well
f
We are also having the exact same issue. Spinning forever.
m
yes having that same issue
j
How come no update here ? As I was debugging I saw this status was still green
Screenshot 2025-06-26 at 9.51.09 am.png
👆 2
j
Hello, yes, this was updated and there is an announcement. We were confirming the actual impact. Nevertheless it should be looking better now.
j
the acutal dashboard seems to be working but not the embedded ones. Still not loading on my Production application
j
Hm. Fresh logs show us out of the troubles so does my testing. Pls let us know if the problem persist on your app.
m
Hi, as it is stated in the announcement, the issue has been fully resolved. IAD1 Datacenter, us-east-1 region is 100% operational now. However, we will keep monitoring. Sorry for any inconvenience caused. (@Joaquim Grilo Can you confirm please if it is working on your application?)
j
Hey still no good on my embedded version on my app
m
I have tested on my end, and no issue in embedding dashboard, neither Iframe and SDK. Can you confirm please which embedding method you are using, in case it is SDK, can you also letting to know which version?
j
let me check if its a case of caching ill try different broswers and get back to you
1
https://university.gooddata.com/tutorials/developer-tools/how-to-test-web-components/ we are using the webcomponents like the setup in the link above
m
Thank you for this. Could you please provide us with a screenshot or screencast? Also, a HAR file would help. I just would like to let you know that this may not be related to the incident we had. Can you also confirm which users can not see the dashboards?. Feel free to use DM to share sensitive information.
j
was there any version changes?
Copy code
export class DashboardEmbedComponent implements OnInit {
	dashboardId: string = '';
	dashboardFilters = [];
	contact_support = `Dashboard is not configured for this customer yet. Please <a href='<https://help.xxx.io>'>contact support</a> if you have questions.`;
	gdDashboardLoading$ = new BehaviorSubject<boolean>(true);
	dashboardConfigured = signal(false);
	spinnerClasses = signal('contained');

	constructor(
		private userSvc: UserService,
		private renderer: Renderer2,
		private globalDashboardSvc: GlobalDashboardService
	) {
	}

	onDashboardLoaded(e: Event) {
		const detail = (e as CustomEvent).detail;
		const filters = detail?.dashboard?.filterContext?.filters;
		if (Array.isArray(filters)) {
			this.dashboardFilters.push(...filters);
		}
	}

	onDashboardFilterChange(e: Event) {
		const detail = (e as CustomEvent).detail;
		const filters = detail?.dashboard?.filterContext?.filters;
		if (Array.isArray(filters)) {
			this.dashboardFilters.push(...filters);
		}
	}

	ngOnInit(): void {
		this.globalDashboardSvc.activeDashboardSubject$
		.pipe(
			distinctUntilChanged((prevDashboard, currDashboard) => JSON.stringify(prevDashboard) === JSON.stringify(currDashboard)),
			tap(dashboard => {
				if(!dashboard) {
					this.dashboardConfigured.set(false);
					this.gdDashboardLoading$.next(false);
				}
			}),
			filter(dashboard => !!dashboard),
			untilDestroyed(this),
		)
		.subscribe(dashboard => {
			this.dashboardId = dashboard?.dashId;
			this.authenticateAndInjectGdScript(dashboard?.workspaceId);
		})

		this.globalDashboardSvc.activeCustomer$.pipe(
			filter(customer => !!customer),
			untilDestroyed(this),
		).subscribe(customer => {
			if(customer?.enableLegacyDashboard) {
				this.gdDashboardLoading$.next(false);
				this.dashboardConfigured.set(false);
			}
		})
	}

	cleanUpGdElements() {
		// Clean up existing elements
		document.getElementById('customDashScript')?.remove();
		document.getElementById('gdElement')?.remove();
	}

	authenticateAndInjectGdScript(workspaceId: string) {
		this.userSvc.getStoredOrNewToken$()
			.pipe(
				distinctUntilChanged(),
				untilDestroyed(this),
			)
			.subscribe(token => {
				// Create and inject new script
				const script = this.renderer.createElement('script');
				const head = this.renderer.selectRootElement('head', true);
				const gdElement = document.createElement('gd-dashboard');

				script.type = 'module';
				script.id = 'customDashScript';

				// Create the script content with imports and context setup
				script.textContent = `
					import { setContext } from "<https://xxx.cloud.gooddata.com/components/${workspaceId}.js>";
					import factory, { TigerTokenAuthProvider } from "<https://xxx.cloud.gooddata.com/components/tigerBackend.js>";

					try {
						setContext({
						backend: factory()
							.onHostname("<https://xxx.cloud.gooddata.com>")
							.withAuthentication(new TigerTokenAuthProvider("${token}")),
						workspaceId: "${workspaceId}",
					});
					} catch(e) {
						// console.log('Context set');
					}
				`;

				// Append script to head
				this.renderer.appendChild(head, script);

				gdElement.classList.add('dashboard');
				gdElement.id = 'gdElement'
				gdElement.setAttribute('dashboard', this.dashboardId);
				gdElement.addEventListener(INITIALIZED, this.onDashboardLoaded.bind(this));
				gdElement.addEventListener(FILTER_CHANGED, this.onDashboardFilterChange.bind(this));

				if (document.getElementById('dashboardContainer')) {
					document.getElementById('dashboardContainer').innerHTML = '';
					document.getElementById('dashboardContainer').appendChild(gdElement);

					setTimeout(() => {
						this.gdDashboardLoading$.next(false);
						this.dashboardConfigured.set(true);
					}, 1000);
				} else {
					this.gdDashboardLoading$.next(false);
					this.dashboardConfigured.set(false);
				}
			});
	}
}
this is my setup
I am using angular App
m
Hi @Joaquim Grilo based on your shared imaged by DM, is possible see 'not authenticated' but I was assuming the problem was with the insight loading as it was the outage. Thus, can you clarify if you can authenticate? Additionally, at the bottom there is a suggestion for automatic authentication, have you tried it?
m
cc: @Shahenshah Malik
j
I can authenticate if I use SSO (which we used in the past but it cause some 404 issues after the 2 hour session was over and we couldnt renew the session until user logged out and back in) So then we started using token based in order to not have that issue. It has been working for the past 7 months until todays changes on your end. Which broke our set up
m
Hi Joaquim, thank you for this context. I will open a ticket on your behalf. You will receive an email shortly, so we will continue in there. Thank you.
j
thank you
m
@Mauricio Cabezas can you please add me to that ticket.
1