Skip to content

# Report rendering api override setting

The report rendering api override setting is used in situations where report rendering code is unable to contact the local AyaNova api server via it's localhost address.

The symptom of this issue is reports failing to render with an error displayed containing text similar to "JobFailed: PuppeteerSharp -> Evaluation failed: TypeError: Failed to fetch at ayPostToAPI"

Reports are rendered by a "headless" web browser running at the AyaNova server which executes the javascript required to render the report. Most report scripts will need to contact the AyaNova API to fetch data like translations or logos. In some scenarios such as some specific configurations when using IIS as the front end for AyaNova the local headless browser is prevented from contacting the AyaNova server due to accessing it via the `localhost` address. In these situations it's necessary to tell the script to use an alternative address.

Note that because reports are rendered by a headless browser running at the AyaNova server you can use a regular web browser at that machine for a diagnostic process to determine the correct URL override setting. (If you can't run the AyaNova web application locally at the IIS / AyaNova server then reports will not render either until the correct URL is found.)

Most often though the initial setting recommended below will rectify this issue.

## What to do if you need to set this value

We have seen inconsistent requirements for this setting in production use scenarios so we recommend two possible settings to try first and failing that initiating a diagnostic process at the IIS server to determine a suitable setting.

Note that in each case when making changes to the configuration setting it is necessary to completely restart AyaNova or the setting will not take effect. You can confirm this by examining the AyaNova server log in the AyaNova UI Server Operations section and confirm that the server log shows AyaNova server was rebooted and has logged the new configuration setting you changed.

The first and most likely setting to resolve this issue is to set to the URL that external users on the internet use to connect to the AyaNova web application.

So, for example, if your AyaNova server is normally connected to in a web browser at the url `https://ayanova.example.com` to use the AyaNova web application then you would set this value to exactly that `https://ayanova.example.com`.

If the above does not work try the local non encrypted (http) address of the AyaNova server itself (NOT the encrypted address configured for external users in IIS) for example:

`http://localhost:7575`

(substitute your port number if you didn't take the default 7575)

## Diagnostic process

If neither of the above settings work note that the correct URL to set for the override can be determined by using a browser at the IIS server itself to open the AyaNova web application and attempt to login and use the application.

Since the report generator uses the same API as the AyaNova web application the URL that works in the browser for the AyaNova web application will also work for the report rendering system and will be the setting you need to use in the override URL.

If no combination of url or ports work at the server it's also possible that a firewall configuration is preventing access and should be eliminated as the source of the issue before contacting technical support.

## Overriding

AyaNova expects this value to be provided by a config.json property, environment variable or command line parameter named

`AYANOVA_REPORT_RENDER_API_URL_OVERRIDE`

The value specified should be a string specifying the external URL used to connect to AyaNova, for example: `https://ayanova.example.com`

Example config.json entry

    {
      ...other properties...
      "AYANOVA_REPORT_RENDER_API_URL_OVERRIDE": "https://ayanova.example.com"
    }

Example command line parameter

`ayanova.exe --AYANOVA_REPORT_RENDER_API_URL_OVERRIDE="https://ayanova.example.com"`

Example environment variable

Windows

`set "AYANOVA_REPORT_RENDER_API_URL_OVERRIDE=https://ayanova.example.com"`

Linux

`export AYANOVA_REPORT_RENDER_API_URL_OVERRIDE="https://ayanova.example.com"`