# UploadResult

Defined in: [packages/synapse-sdk/src/types.ts:516](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L516)

Result of a multi-copy upload operation.

To determine success, check `complete`, it's `true` when all requested
copies were successfully stored and recorded on-chain. Do NOT use
`failedAttempts.length > 0` as a failure signal; failed attempts may have
been resolved by successful retries on other providers.

## Example

```typescript
const result = await synapse.storage.upload(data, { copies: 3 })
if (!result.complete) {
  console.warn(`Got ${result.copies.length}/${result.requestedCopies} copies`)
  for (const attempt of result.failedAttempts) {
    console.warn(`  Provider ${attempt.providerId}: ${attempt.error}`)
  }
}
```

## Properties

### complete

> **complete**: `boolean`

Defined in: [packages/synapse-sdk/src/types.ts:524](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L524)

True when all requested copies were successfully stored and recorded on-chain

***

### copies

> **copies**: [`CopyResult`](/reference/filoz/synapse-sdk/synapse/interfaces/copyresult/)[]

Defined in: [packages/synapse-sdk/src/types.ts:526](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L526)

Successful copies across providers

***

### failedAttempts

> **failedAttempts**: [`FailedAttempt`](/reference/filoz/synapse-sdk/synapse/interfaces/failedattempt/)[]

Defined in: [packages/synapse-sdk/src/types.ts:532](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L532)

Provider attempts that did not produce a copy. A non-empty array does NOT
indicate upload failure, check `complete` or compare `copies.length`
against `requestedCopies` to determine overall success.

***

### pieceCid

> **pieceCid**: `PieceLink`

Defined in: [packages/synapse-sdk/src/types.ts:518](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L518)

PieceCID of the uploaded data

***

### requestedCopies

> **requestedCopies**: `number`

Defined in: [packages/synapse-sdk/src/types.ts:522](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L522)

Number of copies that were requested

***

### size

> **size**: `number`

Defined in: [packages/synapse-sdk/src/types.ts:520](https://github.com/FilOzone/synapse-sdk/blob/bd9e06ee9cf6823545e5c4af63ab47e38bbf43ef/packages/synapse-sdk/src/types.ts#L520)

Size of the original data