Skip to main content

Troubleshooting

On this page, you will find information about known issues in Studio and how to solve them.

Index

 

Web browsers

Studio works best in Google Chrome. If you experience any issues and are not using Chrome, switching to Chrome may solve the problem. If you require further assistance, please don't hesitate to contact us at Support.

 

Top

Web browser extensions

Some extensions may interfere with web applications such as Arria Studio. Please try disabling or uninstalling them if you experience problems. We are aware that the following extension causes problems:

  • Grammarly

  • ZoomInfo

 

Top

Cannot import CSV data

Studio will not import a CSV data file containing rows or columns with duplicate names.

A file with duplicate column names will always be rejected. This is because, in all table project types, Studio automatically creates a column variable for each column, and each column variable requires a unique name.

A file with duplicate row names will be rejected in “Describe the Table” and “Describe Row in Context” projects only. This is because those project types have special built-in data access variables (such as FocusRow and RowNames) that cannot work unless each row has a unique row name.

For more information, see Data access variables in table projects.

Suppose the following table data is stored in CSV format and you attempt to import the file when starting a "Describe the Table" or "Describe Row in Context" project:

Jurisdiction

Type

Capital

StateLandArea

StatePop2010

StatePop2010

New South Wales

State

Sydney

800,641

7,238,800

7,618,200

Victoria

State

Melbourne

227,416

5,547,500

5,938,100

Queensland

State

Brisbane

1,730,647

4,516,400

4,779,400

Victoria

State

Hobart

68,401

507,600

516,600

For these project types, Studio assumes that the first column of a CSV data table contains the row names. This is the Jurisdiction column in the table above. The entries in this column must be unique; however, as you can see, "Victoria" is a duplicate. In addition, two columns have been named StatePop2010.

Attempting to import this data for a "Describe the Table" or "Describe Row in Context" project* will produce the following error message:

Upload Error Message.png

The fix here is simple: identify and eliminate the duplicates in your data, then import the amended file. As you can see, the error message makes this process easier by listing the duplicate values for you.

* If you attempted to import this data for a "Describe Each Row" project, the error message would identify the column duplicate only. The user cannot make use of row names in this project type; therefore, duplicate row names (i.e. duplicates in the first column of data) are permissible.

Note

If "null" is listed among the duplicates in the error message and there are no empty cells in your data, try deleting some unused rows or columns around the data (e.g. a few rows beneath the final row) and then import the amended data file. Alternatively, copy and paste your data into a new CSV file, taking care not to copy any extra empty rows or columns, and import that file instead.

 

Top

Cannot import JSON data (JSON array as root object)

Studio requires all imported data to be a JSON object (at the root level). If your data is naturally an array, you must place it inside an object — that is, inside a key–value pair surrounded by curly brackets.

For example, the following is valid JSON but is invalid data:

[
    {
        "employee": {
            "firstName": "Lokesh",
            "lastName": "Gupta",
            "cars": [
                "Ford",
                "BMW",
                "Fiat"
            ]
        }
    },
    {
        "employee": {
            "firstName": "Brian",
            "lastName": "Schultz",
            "cars": [
                "Tesla",
                "Kia"
            ]
        }
    }
]

Here the array is not inside an object. Attempting to upload this data file produces the following error message:

The file contains an error and cannot be imported. It contains a JSON array as root object

A fixed version of the data is shown below:

{"myData" :[
    {
        "employee": {
            "firstName": "Lokesh",
            "lastName": "Gupta",
            "cars": [
                "Ford",
                "BMW",
                "Fiat"
            ]
        }
    },
    {
        "employee": {
            "firstName": "Brian",
            "lastName": "Schultz",
            "cars": [
                "Tesla",
                "Kia"
            ]
        }
    }
]}

 

Top

No ‘Access-Control-Allow-Origin’ header is present on the requested resource

If you get an error that looks like the following:

Failed to load 
https://app.studio.arria.com/...: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'https://www.mydomain.com' is therefore not allowed access. 
The response had HTTP status code 400.

You need to add the domain address in the origin line (e.g. https://www.mydomain.com) to the CORS list under API in the Publish tab. Also note that additions to the CORS list only take effect once you have re-published the project, so after adding your domain, please try pressing the Publish button again to re-publish the latest version of the project. The URL and key will not change when you re-publish so you shouldn’t need to make any other changes to the way you are calling the API.

API call returns results based on the sample data, not the data I sent

If you are successfully calling the API endpoint for your project, and you are sending it new data but getting back results based on the sample data, then please check that you have correctly converted your data to the POST request body format. For guidance see Using a Studio app's API > The request body.

Even for a JSON project, you will need to add the following JSON at the beginning of your JSON data file and terminate it correspondingly.

{ "data":[ { "id":"Primary", "type":"json", "jsonData": … … } ]}

 

Top

Some characters showing as ‘?’ or odd symbols

If you upload a lex rule file or sample data file into your project and it shows odd symbols or question marks instead of certain symbols like £, €, é or ¥, as below, then this is probably because the file used a different encoding to UTF-8, which is generally used by Studio.

Strange Characters (Data)

To fix this you need to convert the encoding of your lex rule or data file to UTF-8, then re-upload it.

For example, if you open your file in Notepad++ on Windows, the encoding is shown in the bottom bar, in the right half. (In the example, the encoding is ANSI.)

Notepad

Choose the menu option Encoding > Convert to UTF-8 to convert the file, then save it. Then re-upload the file and you should see the characters correctly.

For classic Windows Notepad select File > Save As, then select ANSI from the Encoding dropdown menu at the bottom right.

 

Top

Conditional produces a syntax error

Do not put quotes around strings in the Conditional Builder. If you do, and you build the conditional, it will produce a double-quoted string in ATL. Suppose you were to type the quoted string ‘Labour’ in the Conditional Builder, and the ATL it produced was: [[if(Party==''Labour''){yes}else{no}]].

If you called this, it would produce the following error:

Syntax Error
There are syntax errors in the Script 'Main' that need to be fixed before the project can be run:
Syntax error near '''Labour': Premature 'Labour'. Please add a closing ')' or continue the boolean expression.
Syntax error near 'Labour'': Unexpected token '''. Expected completion of the statement.
Syntax error near ''')': Unexpected token ')'. Expected completion of the statement.

which can be confusing if you don’t know what caused it!

The solution is simple. With no quotes, the Conditional Builder produces [[if(Party=='Labour'){yes}else{no}]] which runs without an error (provided, of course, that your project has a variable called Party).

 

Top

Inserting links from a data table column

The Insert Link button in Compose View makes it easy to insert a hard-coded link to a web page in your script. As well as hard-coded links, you can insert links from your input data.

For example, imagine a "Describe Each Row" project with the following table data:

Row No.

SearchEngine

URL

Row 1

Google

https://www.google.com/

Row 2

Bing

https://www.bing.com/

Row 3

DuckDuckGo

https://duckduckgo.com/

Just calling the URL column variable directly in your script will not work; the output for each row would produce the URL in plain text, not as a clickable link. Similarly, creating a link using the Insert Link button and giving it the column variable also will not work.

For example, the ATL The home page for [[SearchEngine]] is [[URL]] produces the following output for Row 1:

Google__without_hyperlink_.png

To produce the URL as a clickable link, you must create an HTML link using the <a> tag and the URL column variable. Then you must apply the decodeHtml function (see decodeHtml) to that expression to ensure Studio interprets the strings in the URL column as HTML.

For example, the ATL The home page for [[SearchEngine]] is [[decodeHtml("<a href='[[URL]]'>[[URL]]</a>")]] produces the following output for Row 1:

Google with hyperlink.png

As you can see, the URL is now produced as a clickable link.

Important

For the above steps to work, the links in your data table must be full URLs starting with either http:// or https://.

 

Top

Unwanted gaps in text output

Occasionally, you might find unwanted gaps (whitespace) when you preview the Main script of your project. This typically occurs when a subscript in your project includes unnecessary <p> or <br> tags at the end of its code. These tags are invisible in the editor's Marked Up View and ATL View, but they can be seen in Code View.

Example

The screenshot below shows a project's Main script in the Marked Up view.

Main Script in Marked Up View.png

As you can see, the second and third paragraphs are calls to the LargestState and SmallestState subscripts.

The preview for this Main script shows an unwanted gap (whitespace) between the second and third paragraphs:

Preview (with gap)

Although the gap appears to be in the Main script, the cause of the gap is actually in the LargestState subscript.

Important

The location of unnecessary <p> and <br> tags is not always obvious. For example, the unnecessary tags might be in a subscript that's called within another subscript. When attempting to remove unwanted gaps, it is good practice to carefully investigate each subscript in your project.

The screenshot below shows the LargestState subscript in Code View.

Code with Unwanted Tags.png

Notice the unnecessary <p> and <br> tags at the end of the code (underlined in red). These cause extra space to be inserted at the end of the subscript. This extra space is then replicated when the LargestState subscript is called in Main. Therefore, these tags must be deleted.

The code for the LargestState script looks like this after deleting the unnecessary tags:

Code without Unwanted Tags.png

Important

A </p> tag is required to close out the paragraph. Be careful when deleting to make sure that a single </p> tag remains. This is circled in red in the screenshot above.

Now return to the Main script and click Preview. The unwanted gap has been removed.

Preview (with no gap)

 

Top

Inserting a non-breaking space

On occasion, you might want to insert a non-breaking space between two entities in your script. This ensures that a line break will not occur between them when the output text wraps.

The following example was produced in a "Describe Each Row" project using this data:

Row ID

Name

Launch

Length

Beam

Tonnage

MaxCapacity

Row 1

The Arria Spirit

May 2012

362.5

60.5

168,620

6,554

The following ATL:

[[Name]], launched in [[Launch]], is one of the world's largest passenger ships. It has a length of [[Length]] m, a width of [[Beam]] m, and a tonnage of [[Tonnage]] gt. Its maximum passenger capacity is [[MaxCapacity]] persons. 

produces the following text output for Row 1:

NBSP_1.png

As you can see, the text has wrapped between "168,620" and "gt". It would be better to keep the figure and unit together on the same line. To do this, you must create a user-defined variable using the decodeHtml function.

Click Variables to open the Variables view, then click on ADD NEW VARIABLE and create a variable using the following details:

VARIABLE NAME

VARIABLE TYPE

DATA SOURCE

NBSP

STRING

[[decodeHtml('&nbsp;')]]

Now insert the NBSP variable between the two entities you want to keep together:

[[Name]], launched in [[Launch]], is one of the world's largest passenger ships. It has a length of [[Length]] m, a width of [[Beam]] m, and a tonnage of [[Tonnage]][[NBSP]]gt. Its maximum passenger capacity is [[MaxCapacity]] persons. 

Important

There should be no spaces between your user-defined variable and the two entities you want to keep together.

Now click Preview to see your text output. The "168,620" amount and the "gt" unit text are now on the same line:

NBSP_2.png

 

Top

"&reg" changing to registered symbol ®

When you enter "&reg" in your ATL script, Studio will automatically convert it to the registered trademark symbol ®. This effect can be unintended — for example, when your script includes a complex conditional including an AND (&&) and a column variable name starting with "reg" (such as "region").

The following example was produced in a "Describe Each Row" project using this data

Row ID

region

sales

profit

Row 1

North

10,054.98

2,542.67

The following complex conditional could be applied to this data:

[[if(sales>10000&&region=='North'){The North region has exceeded its sales target}else{The North region has not met its sale target}]].

Although this ATL is correct, Studio will automatically convert it to the following:

[[if(sales>10000&®ion=='North'){The North region has exceeded its sales target}else{The North region has not met its sales target}]].

This converted ATL will produce several syntax error messages when you preview your script.

There are two solutions to this problem:

  1. Add one space on either side of the '&&' in your complex conditional. For example, the following ATL will not produce an error:

    [[if(sales > 10000 && region == 'North'){The North region has exceeded its sales target}else{The North region has not met its sales target}]].

  2. Rename the variable so it no longer begins with "reg". In the example above, changing the column variable name from "region" to "Region" would work, provided the same name change was made in the ATL. For example:

    [[if(sales>10000&&Region=='North'){The North region has exceeded its sales target}else{The North region has not met its sales target}]].

 

Top

Studio Runner: Uploading CSV data produces error about headers not matching

When you upload a new CSV data file using Studio Runner, the following error may appear:

The headers of the Primary data set do not match the headers of the corresponding data set in your project. Expected TEST1. Actual: TEST1. Column Number:1.

It's likely that you will find this error to be unexpected as the column names appear to be the same. That is, they both appear to be TEST1.

This error commonly occurs when the data file used with Studio Runner is saved from Microsoft Excel as type CSV UTF-8 (Comma delimited):

CSV_UTF-8__comma_delimited_.png

Choosing this save option saves the file in Excel with UTF-8-BOM encoding, rather than UTF-8 encoding. CSV files with UTF-8-BOM encoding have an invisible character at the start of the file, and this is what causes the error in Studio Runner.

In the error message above, "TEST1" is the name of the first column — that is, the first value on the first line of the CSV data file. The error says "Expected: TEST1. Actual: TEST1" because Studio Runner expects "TEST1" in the header for Column 1. Due to the presence of the invisible character, the value is not TEST1 but this value preceded by an invisible character, hence the apparently false error message.

To check the encoding, open your CSV data file in a source code editor such as Notepad++. In Notepad++, the encoding type is shown in the bottom right-hand corner of the window. (Other editors may show it somewhere else.)

A file encoded with UTF-8-BOM looks like this:

UTF-8-BOM encoding.pgn

To save a CSV file from Excel with the correct UTF-8 encoding, choose the option CSV (Comma delimited):

CSV__comma_delimited_.png

This is the correct CSV format to use for Studio.

 

Top

Function not supported in legacy projects

Inserting a formatting function might produce this error:

This function is not supported in legacy projects. Change your Legacy Number Formatting setting (see Settings > Number and Currency > Advanced) to 'numberFormat'.

This occurs when your project is in legacy mode. This mode exists to ensure backward compatibility for older projects. More specifically, it ensures that number formatting continues to work as intended in projects published before the release of version 3.1.0. A downside is that legacy projects don't support the formatting functions introduced in version 3.1.0. These are:

To fix this problem, follow these steps:

  1. Click Settings to access the Settings view.

  2. Click Number and Currency and scroll to the bottom of the tab.

  3. Click the arrow beside Advanced to open the advanced settings.

    Advanced

    The LEGACY BEHAVIORS setting should be set to legacy.

    Project in Legacy Mode.png
  4. Click the SET TO DEFAULTS button (below LEGACY BEHAVIORS) and then click CONTINUE.

    The LEGACY BEHAVIORS setting should now be set to numberFormat. Using a formatting function should no longer produce the above error message.

Tip

You could achieve the same effect by toggling the LEGACY BEHAVIORS setting to numberFormat; however, we recommend the SET TO DEFAULTS method given above. This resets all Number and Currency settings to their system defaults, i.e. how they are set when you open a new project. For more about number formatting and legacy projects, see Legacy behaviors.

 

Top