# When something looks wrong > Four reads answer the questions an integration raises: where a send got to, what a memory was built from, what an import will cost, and why a call was refused. ## My data is not showing up Read the send first: `GET /v1/memory/ingest/{ingestionId}` returns `status`, `settled`, `blocked`, `readiness` and `failure`. - `processing` means at least one item is still waiting in the retry queue. - `failed` means at least one item was set aside after repeated failures. - `completed` means every item finished. `readiness` counts the whole memory of the user, not only this send: `raw` is queued with no attempt yet, `comprehension` is queued with an attempt, `consolidation` is always 0, and `failed` is set aside. `settled` is `true` when the first three are 0 and `failed` is 0. `blocked` is `true` when the first three are 0 and `failed` is above 0. `failure` is `null` or `{code, message}` with `content-rejected`, `model-unavailable`, `index-unavailable` or `internal`. A `404 not-found` means the id is not a send of this user. When a send is stuck, `GET /v1/memory/ingest/{ingestionId}/explain` answers in one call where the send got to and what to do about it. `POST /v1/memory/ingest/{ingestionId}/retry` re-runs a send that stopped. A retry is free. ## Where did this memory come from Every result in a recall names its `sources`. For the full path, the trace reads walk back from a memory to the data points behind it: - `GET /v1/memory/trace/roots` lists the roots. - `GET /v1/memory/trace/nodes/{id}` returns one node. - `GET /v1/memory/trace/lineage/{rootId}` returns what a root was built from. - `GET /v1/memory/trace/timeline/{rootId}` returns the same, in time order. ## What will this import cost `POST /v1/memory/ingest/estimate` cuts and batches your files without sending them, so you see the batches before any data leaves your side. Harny meters monthly-active end users, not data volume, so an import costs nothing until the people in it use your app. `GET /v1/memory/usage` reports the month's count as `balance.spent` and `project.credits`, and the plan allowance as `balance.included`. ## Why was my send refused Every response carries an `X-Request-Id` header. Keep it with the call. - `GET /v1/memory/requests` lists calls, filtered by `from`, `to`, `status`, `endpoint`, `keyName` and `search`. - `GET /v1/memory/requests/histogram` counts calls per time bucket. - `GET /v1/memory/requests/{requestId}` returns one call in full. A refusal uses the body `{"code", "status", "debugMessage", "data"}`. Read `code` and `debugMessage` first. A per-minute `429` has an empty body and a `Retry-After` header. [Errors](/docs/memory-api/errors) lists every code.