| # Frequently Asked Questions | |
| ## Installation problems | |
| ## Environment Permission Error | |
| If you directly import your Unity environment without building it in the editor, | |
| you might need to give it additional permissions to execute it. | |
| If you receive such a permission error on macOS, run: | |
| ```sh | |
| chmod -R 755 *.app | |
| ``` | |
| or on Linux: | |
| ```sh | |
| chmod -R 755 *.x86_64 | |
| ``` | |
| On Windows, you can find | |
| [instructions](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754344(v=ws.11)). | |
| ## Environment Connection Timeout | |
| If you are able to launch the environment from `UnityEnvironment` but then | |
| receive a timeout error like this: | |
| ``` | |
| UnityAgentsException: The Communicator was unable to connect. Please make sure the External process is ready to accept communication with Unity. | |
| ``` | |
| There may be a number of possible causes: | |
| - _Cause_: There may be no agent in the scene | |
| - _Cause_: On OSX, the firewall may be preventing communication with the | |
| environment. _Solution_: Add the built environment binary to the list of | |
| exceptions on the firewall by following | |
| [instructions](https://support.apple.com/en-us/HT201642). | |
| - _Cause_: An error happened in the Unity Environment preventing communication. | |
| _Solution_: Look into the | |
| [log files](https://docs.unity3d.com/Manual/LogFiles.html) generated by the | |
| Unity Environment to figure what error happened. | |
| - _Cause_: You have assigned `HTTP_PROXY` and `HTTPS_PROXY` values in your | |
| environment variables. _Solution_: Remove these values and try again. | |
| - _Cause_: You are running in a headless environment (e.g. remotely connected | |
| to a server). _Solution_: Pass `--no-graphics` to `mlagents-learn`, or | |
| `no_graphics=True` to `RemoteRegistryEntry.make()` or the `UnityEnvironment` | |
| initializer. If you need graphics for visual observations, you will need to | |
| set up `xvfb` (or equivalent). | |
| ## Communication port {} still in use | |
| If you receive an exception | |
| `"Couldn't launch new environment because communication port {} is still in use. "`, | |
| you can change the worker number in the Python script when calling | |
| ```python | |
| UnityEnvironment(file_name=filename, worker_id=X) | |
| ``` | |
| ## Mean reward : nan | |
| If you receive a message `Mean reward : nan` when attempting to train a model | |
| using PPO, this is due to the episodes of the Learning Environment not | |
| terminating. In order to address this, set `Max Steps` for the Agents within the | |
| Scene Inspector to a value greater than 0. Alternatively, it is possible to | |
| manually set `done` conditions for episodes from within scripts for custom | |
| episode-terminating events. | |
| ## "File name" cannot be opened because the developer cannot be verified. | |
| If you have downloaded the repository using the github website on macOS 10.15 (Catalina) | |
| or later, you may see this error when attempting to play scenes in the Unity project. | |
| Workarounds include installing the package using the Unity Package Manager (this is | |
| the officially supported approach - see [here](Installation.md)), or following the | |
| instructions [here](https://support.apple.com/en-us/HT202491) to verify the relevant | |
| files on your machine on a file-by-file basis. | |