# Tips and Troubleshooting

### File attachments

When reading a recipe, look for **file attachments**. Almost all examples have an attached Groovy script to download.

### Working with the attached scripts

To use the scripts with a non-production server, edit the script to include your server network address and credentials.

For illustration purposes, most scripts use populated information. You must add your own sample, process (eg, a master step in Clarity LIMS v5 and later), and other data. The non-production server has a directory set up for this purpose at

```
/opt/gls/clarity/customextensions/ 
```

**Using Full Production Scripts**

When using full production scripts, the following considerations must be taken:

* Cookbook scripts are written to explain concepts. They are not deeply engineered code written in a defensive programming style. Always think through the expected and unexpected input of your scripts when incorporating concepts or code from Cookbook recipe examples.
* Full production servers can require different configurations for scripting languages other than Groovy, and for the EPP/automation worker node. For example, your script directory can be accessible by the user account running the EPP/automation worker node for User Interface (UI) triggers.

Discuss the software deployment plans with your system administrator to coordinate between non-production and production servers. For more information on using production scripts, see [rest-general-concepts](https://help.connected.illumina.com/clarity-lims/api-and-database/api-docs/rest/rest-general-concepts "mention") and [automation](https://help.connected.illumina.com/clarity-lims/api-and-database/api-docs/automation "mention").

### Version Compatibility

Each recipe was written with a specific API version. For information on how to check the version of the API on your system, see [requesting-api-version-information](https://help.connected.illumina.com/clarity-lims/api-and-database/api-docs/rest/requesting-api-version-information "mention").

Apache Groovy is required for most Cookbook examples. It is open source and is available under an Apache license from [groovy-lang.org/download.html](http://groovy-lang.org/download.html). It is installed on non-production servers, but you can also install it to your desktop. The Cookbook examples were developed with Groovy v1.7.

Python is required for some Cookbook examples. It is available from [www.python.org/download](http://www.python.org/download/). The Cookbook examples were developed with Python v2.7.

### Path to Groovy

The automation worker node executing the command uses the first instance of Groovy it finds in the executable search path for the limited shell. This is the $PATH variable.

If you have multiple versions of Groovy (or multiple users using different versions) and experience problems with your command-line calls, declare the full path to Groovy/Java in your command.

To see your executable search path, and other environment variables available to you, run the following command:

```
bash -c "env > {outputFileLuid0}.txt"
```

Compare this command to the full logon shell, which is

```
bash -l -c "env > {outputFileLuid0}.txt"
```

For more information on command-line actions, see [supported-command-line-interpreters](https://help.connected.illumina.com/clarity-lims/api-and-database/api-docs/automation/supported-command-line-interpreters "mention").

### References

For details on the programming interface methods and data elements available, refer to the following documentation:

* [https://github.com/illumina-swi/clarity-int-docs/blob/main/docs/api-and-database/api-docs/resources-and-references.md](https://github.com/illumina-swi/clarity-int-docs/blob/main/docs/api-and-database/api-docs/resources-and-references.md "mention")
* [automation-tokens](https://help.connected.illumina.com/clarity-lims/api-and-database/api-docs/automation/automation-tokens "mention")

### Browser Plug-Ins

Browsing for, and adjusting resources, in Firefox, Chrome, or other browsers is great for getting started or for troubleshooting.

The following plug-ins are available with Firefox:

* **Text Link**—Makes any URI in the XML a hyperlink.
* **Linkificator**—Converts text links into selectable links.
* **RESTClient**—Provides a simple interface to call HTTP methods on REST resources. It is useful for troubleshooting, checking error codes, and for getting comfortable with GET, PUT, and POST requests.

The following plug-ins are available with Chrome:

* **Advanced REST Client**—Provides similar functionality to Poster by Firefox.
* **XML Tree**—Displays XML data in a user-friendly way.
