diff --git a/src/api/telemetry/TelemetryAPI.js b/src/api/telemetry/TelemetryAPI.js index 050cdcce04f..00df1b69d41 100644 --- a/src/api/telemetry/TelemetryAPI.js +++ b/src/api/telemetry/TelemetryAPI.js @@ -784,6 +784,7 @@ export default class TelemetryAPI { */ getLimits(domainObject) { const provider = this.#findLimitEvaluator(domainObject); + if (!provider || !provider.getLimits) { return { limits: function () { @@ -792,7 +793,23 @@ export default class TelemetryAPI { }; } - return provider.getLimits(domainObject); + const abortController = new AbortController(); + const options = { signal: abortController.signal }; + this.requestAbortControllers.add(abortController); + + try { + return provider.getLimits(domainObject, options); + } catch (error) { + if (error.name !== 'AbortError') { + this.openmct.notifications.error( + 'Error requesting telemetry data, see console for details' + ); + } + + throw new Error(error); + } finally { + this.requestAbortControllers.delete(abortController); + } } }