I do run horizon db reingest range 6500 7104 in order to pull some missing entries to my validator.

I run into this error:

INFO[2020-05-04T15:52:55.425Z] Ingestion system initial state                current_state="reingestHistoryRange(fromLedger=6500, toLedger=7104, force=false)" pid=21477 service=expingest
INFO[2020-05-04T15:52:55.432Z] Processing ledger                             commit=false graph=false ledger=true pid=21477 sequence=6500 service=expingest state=false
ERRO[2020-05-04T15:52:55.434Z] Error in ingestion state machine              current_state="reingestHistoryRange(fromLedger=6500, toLedger=7104, force=false)" error="error processing ledger sequence=6500: Error creating ledger reader: ledger not found" next_state=stop pid=21477 service=expingest
INFO[2020-05-04T15:52:55.434Z] Shut down                                     pid=21477 service=expingest
2020/05/04 15:52:55 error processing ledger sequence=6500: Error creating ledger reader: ledger not found

What I noted is that the HISTORY_ARCHIVE_URL (https://history.stellar.org/prd/core-testnet/core_testnet_001) is actually giving me a 404.

How can I fix that?


1 Answer 1


Stellar-core database must contain the ledgers in the range you want to ingest. You can make stellar-core to process them by running:

stellar-core catchup 7104/1000

This will process 1000 ledgers before 7104, including 7104.

  • Hm, that brings me to the next error: dpaste.org/n28o
    – shredding
    May 5, 2020 at 5:40
  • Additionally: Is there a way to define the starting ledger on startup? If so, I'd just throw the container away.
    – shredding
    May 5, 2020 at 7:48
  • This Stellar-Core error in strange, you can try to remove buckets directory it should help. Which docker image are you using? May 5, 2020 at 14:19
  • 1
    First of all, stellar/quickstart is a single purpose image - it just catchup to testnet and pubnet and start serving requests. It's really hard to do any admin tasks. I would recommend using github.com/stellar/go/tree/master/services/horizon/docker that's just a wrapper around horizon binary so should be easy to run all commands. May 6, 2020 at 13:12
  • 1
    Second, you either need stop stellar-core instance before running new-db or have another instance where you can run catchup and point horizon to it. I think the former is easier. So the process should be the following. 1. Start stellar-core and horizon, wait for horizon to ingest a few couple ledgers. Check history_elder_ledger value. 2. Stop stellar-core and horizon. 3. Catchup stellar-core to any range pre history_elder_ledger you want. 4. Reingest that range using horizon. 5. Restart everything stellar-core (new-db and run) and horizon. May 6, 2020 at 13:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.