# UploadResult

Defined in: [packages/synapse-sdk/src/types.ts:567](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L567)

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:575](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L575)

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:577](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L577)

Successful copies across providers

***

### failedAttempts

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

Defined in: [packages/synapse-sdk/src/types.ts:583](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L583)

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**: [`PieceCID`](/reference/filoz/synapse-sdk/synapse/interfaces/piececid/)

Defined in: [packages/synapse-sdk/src/types.ts:569](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L569)

PieceCID of the uploaded data

***

### requestedCopies

> **requestedCopies**: `number`

Defined in: [packages/synapse-sdk/src/types.ts:573](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L573)

Number of copies that were requested

***

### size

> **size**: `number`

Defined in: [packages/synapse-sdk/src/types.ts:571](https://github.com/FilOzone/synapse-sdk/blob/2e357180d354970e2a091ff7ef0f3021c8357d4f/packages/synapse-sdk/src/types.ts#L571)

Size of the original data