Issue Regarding Navigate to App Functionality

I have created an app through AppStudio. I have used a button whose functionality is to jump to an existing app in the Flex Pendant. Like the button is for IO Page, so when pressing the button, user would jump to Pendant’s IO Page. But when I open the App through the already opened app. I am getting an error. Attached photo shows the error. How to resolve this issue?

1 Like

This may be an issue with the TPU dependency used by AppStudio.

If a workaround is absolutely necessary, I’d suggest making the exception handling in ecosystem-app.js (lines 28–40) a bit more lenient.

Hey @yitong,

Thanks for the help. But I am new to appstudio, and the whole app was created by AppStudio. Is there any way to work around for this issue using AppStudio application.

If you just want a temporary workaround for the issue with navigating to the I/O screen in v1.4.0, you can add this code to the onCreated event of your navigation button.


  const interaction = API.INTERACTION;
  const originalNavigateToApp = interaction.navigateToApp;

  // Override the original navigation method
  interaction.navigateToApp = async function (appName, message = '') {
    try {
      return await originalNavigateToApp.call(this, appName, message);
    } catch (error) {
      // Extract the error name, message, and underlying cause
      const errorName = String(error?.name ?? '');
      const errorMessage = String(error?.message ?? error ?? '');
      const causeMessage = String(
        error?.cause?.message ?? error?.cause ?? ''
      );

      // Identify the known I/O navigation failure
      const isKnownIOError =
        appName === 'I/O' &&
        (
          errorName === 'FailedToNavigateToApp' ||
          errorMessage.includes('FailedToNavigateToApp')
        ) &&
        causeMessage.includes('Request failed');

      if (isKnownIOError) {
        // Suppress the known navigation rejection
        console.warn(
          '[IOPatch] Suppressed I/O navigation error:',
          errorMessage,
          causeMessage
        );

        return;
      }

      // Preserve unexpected navigation errors
      throw error;
    }
  };

This temporary filter will block error prompts related to IO navigation.