# checkAddPiecesFit

> **checkAddPiecesFit**(`options`): [`AddPiecesFitResult`](/reference/filoz/synapse-core/sp/type-aliases/addpiecesfitresult/)

Defined in: [packages/synapse-core/src/sp/add-pieces-fits.ts:92](https://github.com/FilOzone/synapse-sdk/blob/56f1ef3fb5ccfea19fb80cb59e997e381f37d85a/packages/synapse-core/src/sp/add-pieces-fits.ts#L92)

Whether a candidate piece list fits in one addPieces / createAndAdd message, and why not.

Same checks as [addPiecesFits](/reference/filoz/synapse-core/sp/functions/addpiecesfits/), but returns the failure reason. Invalid metadata is
reported with the index of the first bad piece instead of throwing.

## Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `options` | [`LimiterOptions`](/reference/filoz/synapse-core/sp/type-aliases/limiteroptions/) | [checkAddPiecesFit.OptionsType](/reference/filoz/synapse-core/sp/namespaces/checkaddpiecesfit/type-aliases/optionstype/) |

## Returns

[`AddPiecesFitResult`](/reference/filoz/synapse-core/sp/type-aliases/addpiecesfitresult/)

The fit result [checkAddPiecesFit.OutputType](/reference/filoz/synapse-core/sp/namespaces/checkaddpiecesfit/type-aliases/outputtype/)

## Example

```ts
import { checkAddPiecesFit } from '@filoz/synapse-core/sp'

const result = checkAddPiecesFit({ kind: 'addPieces', dataSetId, pieces })
if (!result.fits && result.reason === 'invalid-metadata') {
  console.log('bad piece at', result.index)
}
```