diff --git a/openc3-cosmos-init/plugins/packages/openc3-cosmos-tool-packetviewer/src/tools/PacketViewer/PacketViewer.vue b/openc3-cosmos-init/plugins/packages/openc3-cosmos-tool-packetviewer/src/tools/PacketViewer/PacketViewer.vue index 6e11c915b8..1b7f62e4ae 100644 --- a/openc3-cosmos-init/plugins/packages/openc3-cosmos-tool-packetviewer/src/tools/PacketViewer/PacketViewer.vue +++ b/openc3-cosmos-init/plugins/packages/openc3-cosmos-tool-packetviewer/src/tools/PacketViewer/PacketViewer.vue @@ -491,31 +491,49 @@ export default { } }, packetChanged(event) { - this.api.get_target(event.targetName).then((target) => { - this.ignoredItems = target.ignored_items - }) this.api - .get_packet_derived_items(event.targetName, event.packetName) - .then((derived) => { - this.derivedItems = derived + .get_target(event.targetName) + .then((target) => { + if (target) { + this.ignoredItems = target.ignored_items + + return this.api.get_packet_derived_items( + event.targetName, + event.packetName, + ) + } else { + // Probably got here from an old config or URL params that point to something that no longer exists + // (e.g. the plugin that defined this target was deleted). Unset these to avoid API errors. + this.targetName = null + this.packetName = null + this.$router.push({ + name: 'PackerViewer', + params: {}, + }) + } }) + .then((derived) => { + if (derived) { + this.derivedItems = derived - this.targetName = event.targetName - this.packetName = event.packetName - if ( - this.$route.params.target !== event.targetName || - this.$route.params.packet !== event.packetName - ) { - this.saveDefaultConfig(this.currentConfig) - this.$router.push({ - name: 'PackerViewer', - params: { - target: this.targetName, - packet: this.packetName, - }, + this.targetName = event.targetName + this.packetName = event.packetName + if ( + this.$route.params.target !== event.targetName || + this.$route.params.packet !== event.packetName + ) { + this.saveDefaultConfig(this.currentConfig) + this.$router.push({ + name: 'PackerViewer', + params: { + target: this.targetName, + packet: this.packetName, + }, + }) + } + this.changeUpdater(true) + } }) - } - this.changeUpdater(true) }, changeUpdater(clearExisting) { if (this.updater != null) { @@ -526,6 +544,9 @@ export default { this.rows = [] } this.updater = setInterval(() => { + if (!this.targetName || !this.packetName) { + return // noop if target/packet aren't set + } this.api .get_tlm_packet( this.targetName,