# Upload Submission

<figure><img src="/files/FpfOHciU6CQ8TouRmULx" alt=""><figcaption></figcaption></figure>

**Upload Submission** is run by the Vendor to carry out the upload of files from the Vendor to the Production. You should **run Upload Submission&#x20;*****after*****&#x20;running Vendor Submission**: [Vendor Submission](/artist-anywhere/vendor-workflows/vendor-submission.md) creates the “shipping label” for your Submission, and Upload Submission uses that label to do the actual upload.

## Details <a href="#h_01hbccq0fcjbp7ha0w51b6cect" id="h_01hbccq0fcjbp7ha0w51b6cect"></a>

**Upload Submission** searches for pending Submission records created by **Vendor Submission**, and uses the instructions in those records to carry out the transfer.&#x20;

You can manually have Upload Submission search for a single pending Submission, or have it run constantly, automatically transferring any pending Submissions it finds as they appear. &#x20;

{% hint style="info" %}
**Upload Submission handles** moving files across the internet and uploading them to the Production studio, but it doesn’t ingest the files into ShotGrid or place them in the production filesystem. To complete the Submission process, the [**Ingest Queue** ](/artist-anywhere/i-o-tools/ingest-queue.md)must process the files.
{% endhint %}

### A Note on Version Terminology <a href="#h_01hbccq0fcqad059cfnx8awmwa" id="h_01hbccq0fcqad059cfnx8awmwa"></a>

The use of the word “version” can be a little confusing in this context. **ShotGrid uses “Version” to refer to a piece of reviewable media** that is stored and tracked within the ShotGrid webapp and database. But in regular usage, **“version” refers to a number denoting a specific revision or iteration of a piece of media.** We’ll be using both definitions in this workflow, so to disambiguate, we’ll use “Version” and “version number” in this documentation.&#x20;

### Submissions and Deliveries <a href="#h_01hbccq0fcqad059cfnx8awmwa" id="h_01hbccq0fcqad059cfnx8awmwa"></a>

\[RE]DESIGN uses the term “Submission” to refer to a transfer of files from Vendor to Production, and “Delivery” to refer to a transfer from Production to Vendor. However, ShotGrid uses an entity called Delivery to track transfers in both directions. **We’ll use Submission to refer to the transfer itself, and Delivery when referring to the entity in ShotGrid**. For example, “This tool will generate a Delivery record in ShotGrid to track your Submission.”&#x20;

## Initial Setup <a href="#h_01hbccq0fc9416b1jqtskjtmvr" id="h_01hbccq0fc9416b1jqtskjtmvr"></a>

* Install [**ShotGrid Desktop**](/artist-anywhere/i-o-tools/flow-production-tracking-desktop.md) and log into the appropriate ShotGrid site
* Use [**Vendor Submission**](/artist-anywhere/vendor-workflows/vendor-submission.md) to create a shipping record for the files you wish to transfer.&#x20;

## User Interface and Workflow <a href="#h_01hbccq0fc5jwtmgxatha9dwxg" id="h_01hbccq0fc5jwtmgxatha9dwxg"></a>

### Launch Upload Submission <a href="#h_01hbccq0fcqad059cfnx8awmwa" id="h_01hbccq0fcqad059cfnx8awmwa"></a>

Open [ShotGrid Desktop](/artist-anywhere/i-o-tools/flow-production-tracking-desktop.md), select your project, and click on **Upload Submission**.

<div align="left"><figure><img src="/files/hajC5gGYKKPgMoQAx6z4" alt="" width="563"><figcaption></figcaption></figure></div>

### Initial View <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

When you first open the app, the submission list will be empty and you’ll be prompted to check for pending Submission records.

<div align="left"><figure><img src="/files/MmRxtYrxNJnT3oq1dGmA" alt="" width="563"><figcaption></figcaption></figure></div>

Press the **Start Search** button to check for new pending Submissions every 30 seconds or the **Check Now** button to do a single one-time check.

### List View <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

[Vendor Submission](/artist-anywhere/vendor-workflows/vendor-submission.md) creates Delivery records in ShotGrid with the Status of **Ready to Upload**.

<figure><img src="/files/7KJdbehUYTq9PFqWswup" alt=""><figcaption></figcaption></figure>

As soon as you hit **Check Now** or **Start Search**, Upload Submission will begin looking for these records.

As soon as the app finds a pending Submission record, it will display it in the list view and **immediately begin uploading it.**&#x20;

<div align="left"><figure><img src="/files/nOQDztygVKh6BsPHlh74" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
The Upload Submission app will only take one Delivery from ShotGrid at a time, starting with the oldest. **If you wish to order your uploads, create the Deliveries in the order you wish to upload.** When you click **Start Search**, a second Delivery in ShotGrid will be picked up by Upload Submission when the first one is completed.
{% endhint %}

{% hint style="success" %}
Note that the user who launches the Upload Submission app and the user who runs the Vendor Submission app must belong to the same Vendor Group.
{% endhint %}

To stop an upload from running, simply close the Upload Submission app.

<figure><img src="/files/kLKlADMvXv7J4MiO0FqT" alt=""><figcaption></figcaption></figure>

To restart the upload, open the app and click **Start Search** again. Depending on the transfer method, the upload may be able to pick up where it left off.

{% hint style="success" %}
If you are using the date of upload to determine the upload path, you’ll need to start the upload over if the day changes while uploading is paused.
{% endhint %}

### Production Workflow <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

When a Submission has finished uploading, **Upload Submission** will set both the **Status** and the **Delivery Progress** fields of its Delivery record in ShotGrid to **Delivered**. On the Production side, the **Ingest Queue**(link) will see the **Delivered** Status and process the Submission.

#### Status and Delivery Progress <a href="#h_01hsvq42xg0d75pcwaq5njckek" id="h_01hsvq42xg0d75pcwaq5njckek"></a>

As a Submission moves through the transfer process from Vendor to Production, the **Status** and **Delivery Progress** fields on its Delivery record change several times to reflect the current stage in the process. Here are the different states of the two fields.

{% hint style="info" %}
The values in the table below are applicable to **Cyclone transfers only**. If you are using a different [transfer method](https://redesigngrouphelp.zendesk.com/hc/en-us/articles/20414659207956), the values may vary.
{% endhint %}

| **Status**             | **Delivery Progress** | **Description**                                                                                          |
| ---------------------- | --------------------- | -------------------------------------------------------------------------------------------------------- |
| Ready to Upload (rupd) | Ready to Upload       | Vendor Submission is first run; Delivery created                                                         |
| In Progress (ip)       | Uploading             | Upload Submission starts uploading the Delivery                                                          |
| In Progress (ip)       | In Vendor Bucket      | Uploading has completed                                                                                  |
| In Progress (ip)       | In Transit to Central | Delivery is getting copied via AWS Batch                                                                 |
| In Progress (ip)       | Queued to Download    | Delivery is in queue to download to production storage                                                   |
| In Progress (ip)       | Downloading           | Delivery is downloading to production storage                                                            |
| In Progress (ip)       | In Central Storage    | Downloading is complete; Delivery is available in production storage                                     |
| Delivered (dlvr)       | Delivered             | Delivery process is complete; Delivery is ready for [ingest](/artist-anywhere/i-o-tools/ingest-queue.md) |

### Running Upload Submission on Multiple Computers <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

You can run Upload Submission on any machine, provided that the input files are accessible from that machine.

{% hint style="danger" %}
Upload Submission looks for all Delivery records with a Status of **Ready to Upload**. If two users are creating Submissions simultaneously on different machines, and the files of one user’s Submissions are not accessible from the other user’s machine, this may result in an error.
{% endhint %}

## Troubleshooting <a href="#h_01hbccq0fcqhfc4ajkehxsf48t" id="h_01hbccq0fcqhfc4ajkehxsf48t"></a>

### Error Logs <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

Sometimes \[RE]DESIGN will ask you to view or send us the ShotGrid Desktop app's error logs. To access them, open **ShotGrid Desktop**. In the pulldown menu in the upper right corner, select **"Open Log Folder"**. Please ZIP up the all the files in that folder and send them to us with your ticket, or email them to <support@artistanywhere.io>.

### Connection Issues <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

You may need to update your firewall rules if you have having trouble connecting to SG or uploading files. Please pass the following along to your IT department:

* **ShotGrid:** [General Security Ecosystem Documentation](https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Administrator_ar_general_security_ar_ecosystem_html)&#x20;
* If you are using **Cyclone**, there will be an AWS Bucket assigned solely to your facility. The bucket name will generally match the pattern of productionname-vendorname,which you can reach at s3.amazonaws.com/bucketname. If you’re unable to access your AWS Bucket, please contact us at <support@artistanywhere.io>.
* If you are using **Aspera on Cloud**, you will need to open up studioname.ibmaspera.com. You can get more information from [IBM’s Aspera on Cloud documentation](https://www.ibm.com/docs/en/aspera-on-cloud?topic=basic-system-requirements-firewall-settings-browser-support).
* If using other services including Aspera Enterprise, NightRaven, or Content Hub, please contact us at <support@artistanywhere.io>.&#x20;

### Upload Issues <a href="#h_01hbccq0fce6cg0z4207b7ns6z" id="h_01hbccq0fce6cg0z4207b7ns6z"></a>

Uploads can sometimes fail, often due to either connection issues or the uploading computer lacking the needed specifications to run the tools. In such cases, you’ll see a Status of **Error** and a Delivery Progress of **Upload Failed** on the Delivery record in ShotGrid.&#x20;

<figure><img src="/files/zoFfzsGmTt4VvKAZq9xf" alt=""><figcaption></figcaption></figure>

To resubmit a failed upload, follow these steps:

1. Go to the **Deliveries** page in ShotGrid and reset the **Status** and **Delivery Progress** fields of your Submission’s Delivery record back to **Ready to Upload**.&#x20;
2. Launch **Upload Submission**, and click the **Check Now** or **Start Search** button.&#x20;

{% hint style="danger" %}
Please do NOT create a new Submission, as this will require re-uploading all existing files. In addition, if the new Submission’s Delivery record has the same name as the previous one, the files will conflate and the production will get an error when ingesting.
{% endhint %}

Here are some known upload errors:

* **400 and 500 errors:** If you receive a numbered error such as 404 or 502, that means that the upload tool lost contact with the server. These error codes are often accompanied by messages like **HTTP Error**, **Client Error**, or **Protocol Error**. Please reset the Status and Delivery Progress fields of your Submission’s Delivery record in ShotGrid back to **Ready to Upload** and try again.
* **CRUD error:** This is a ShotGrid-related error. It means that the user does not have the necessary permissions to create the entities in SG. Please reach out to the Production to confirm that you are properly configured as a user.
* **Failed to copy / not found errors:** If in ShotGrid or in the log file you see the message **"Failed to copy: directory not found"** or **"Transfer failed: No such file or directory"**, this means the source files were moved between the creation of the Submission and the upload. Restore the files to their original path and set the Status and Delivery Progress fields of your Submission’s Delivery record back to **Ready to Upload** and try again.
* **File size mismatch:** Vendor Submission stores the size of each file in the Submission, and as a validation step, Upload Submission compares it to the file size at upload time. There could be a file size mismatch, for example, if files need to be copied to an IO machine before transfer to Production. If Upload Submission runs before the copy has completed, the partially copied files will cause a file size mismatch. To eliminate this error, Once the files have completed copying, create a new Submission with a different name.
* **App is crashing:** If the Upload Submission app, Python, or ShotGrid Desktop itself is crashing consistently, then the computer may be too old or underperforming. We have found that 16GB of RAM and a newer computer (within the last 5 years) and operating system (within the last 5 years) are often required to ensure stability. Sometimes you'll receive "Out of memory" or "Cannot allocate memory" errors as well when your machine meets specs but if there are other apps running on your machine. If you continue having issues, please reach out to us at <support@artistanywhere.io> and to your production.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://artist-anywhere.gitbook.io/artist-anywhere/vendor-workflows/upload-submission.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
