generate_correlation_id in apexchainx_calculator/src/event_correlation.rs only hashes the ledger_sequence; the _outage_id argument is accepted but is explicitly ignored because Soroban SDK 21.x does not expose symbol bytes without conversion. Two unrelated outages processed in the same ledger produce identical correlation IDs, downstream consumers cannot disambiguate workflows without consulting the SLA event, and the ID is trivially guessable from public ledger data. Incorporate the outage identifier into the hash input, e.g. via Symbol::to_string then FNV-1a, or any deterministic transform that yields a u64. Update the test test_correlation_id_changes_with_ledger_sequence to also assert that the same outage across two ledgers AND two different outages in the same ledger produce three distinct correlation IDs.
generate_correlation_idinapexchainx_calculator/src/event_correlation.rsonly hashes theledger_sequence; the_outage_idargument is accepted but is explicitly ignored because Soroban SDK 21.x does not expose symbol bytes without conversion. Two unrelated outages processed in the same ledger produce identical correlation IDs, downstream consumers cannot disambiguate workflows without consulting the SLA event, and the ID is trivially guessable from public ledger data. Incorporate the outage identifier into the hash input, e.g. viaSymbol::to_stringthen FNV-1a, or any deterministic transform that yields au64. Update the testtest_correlation_id_changes_with_ledger_sequenceto also assert that the same outage across two ledgers AND two different outages in the same ledger produce three distinct correlation IDs.