The emergency phone was halfway to Niamh’s ear when the message vanished.
TRAIN APPROACHING PLATFORM ZERO.
Gone.
The legacy screen returned to its blue station map as if it had not just announced an arriving train at a platform that had been sealed before Niamh finished primary school.
Aamir said, “Please tell me you saw that.”
“I saw it.”
“Good.”
“Why is that good?”
“Because the alternative was that I need a neurologist.”
Niamh lowered the phone without making the call. Emergencies had categories. Fire. Medical. Security. Infrastructure. A hallucinating obsolete computer was not yet one of them.
She pointed at Aamir’s screen. “Pull the event log before anything overwrites it.”
“Already doing it.”
“Mirror it locally.”
“Already doing that too.”
“Stop being irritatingly useful.”
“No.”
The room around them continued operating. Two controllers cleared the last local departures. A cleaning supervisor requested access to Platform Six. West Control asked for confirmation that the maintenance possession was protected. Somewhere below, an automatic announcement apologized for a delay that had already ended.
Normal systems kept moving while one small black monitor insisted on remembering a platform nobody used.
Niamh picked up the phone again, this time to station operations.
“Ciara, I need the lower service corridor behind Concourse B checked.”
“The old parcel route?”
“Further down. There should be a sealed access marked P-zero on the archived plan.”
Silence.
“P-zero?”
“Yes.”
“As in Platform Zero?”
“Apparently.”
“I thought Platform Zero was one of those station ghost stories.”
“Tonight I would prefer it remain one.”
“What am I checking for?”
Niamh considered the question.
A corrupted screen was not a reason to send staff wandering through abandoned infrastructure at midnight. But a route occupancy request had appeared from a disconnected layer with a timestamp one minute ahead of the station clock. She could not explain that. She also could not pretend it had not happened.
“Anything unusual,” she said. “Heat. Noise. Water ingress. Electrical smell. Damage. And don’t open anything sealed.”
“Very reassuring.”
“Take two people and a radio. Stay in the active service corridor.”
“Understood.”
Niamh hung up.
Aamir had exported the log.
“Timestamp is real,” he said.
“Define real.”
“It exists in the file. It wasn’t painted on the screen by the display process.”
“Source?”
“That’s the interesting part.”
“I dislike interesting parts at this hour.”
“The request didn’t enter through the current signalling network.”
“We knew that.”
“No. We assumed that. Now I’m telling you I can’t find a network path at all.”
He turned the screen toward her.
The legacy software had been built in layers, additions piled onto additions until the event record resembled a family argument nobody had ever fully resolved. Aamir highlighted the entry. Every normal request carried an originating controller, machine address or scheduled train identifier.
This one carried none.
“So it generated itself?” Niamh asked.
“Software doesn’t generate train movements because it feels nostalgic.”
“You’ve met our software.”
“Fair.”
He clicked another field. “But look at this.”
The system had not logged the event as an alarm.
It had logged it as an approach occupation.
A train, according to the old program, was physically entering a track circuit attached to Platform Zero.
Niamh glanced at the modern control board.
Nothing.
No train. No unknown vehicle. No occupied section under the station. Every current circuit showed exactly what it should.
“Could an old detector still exist?” she asked.
“Platform Zero was disconnected during the ninety-eight redevelopment.”
“Disconnected is not the same as removed.”
“True.”
“Could something have energized it?”
“Also technically true.”
She waited.
Aamir leaned back. “But if you’re asking whether I think a twenty-eight-year-dead track circuit woke up at midnight and announced a train—no.”
“Good.”
“You sound disappointed.”
“I’m collecting things we can rule out.”
“That is very Callum Vale of you.”
“Who?”
Aamir frowned. “Physicist. Temporal measurement. Talks on the radio sometimes. My sister hates him.”
“Why?”
“He corrected a presenter’s use of the word quantum.”
“That seems survivable.”
“She held a grudge on behalf of the presenter.”
Niamh waved the name away. “Focus on the station we actually work in.”
Neither of them would remember that exchange as important until later.
At 12:08, Ciara called back.
“We found the corridor.”
Niamh brought up the nearest CCTV, but the camera stopped at a grey fire door beyond the active plant rooms.
“Condition?”
“Dusty. Glamorous. Smells like wet concrete and decisions made by councils in the nineties.”
Aamir mouthed, I like her.
Niamh ignored him. “Can you see the old access?”
“Give me a second.”
Footsteps echoed through Ciara’s radio. Another voice—one of the night maintenance staff—said something indistinct.
Then Ciara returned.
“Yeah. Found it.”
“Describe.”
“Concrete cladding, steel service door behind it. Old green enamel sign on the wall. Zero.”
Niamh looked at the archived plan.
The plan showed the same thing: a service corridor branching toward the former platform access, sealed behind redevelopment works but not demolished.
“Do not touch the door.”
“I wasn’t planning to.”
“Any heat?”
“No.”
“Noise?”
Ciara paused.
Niamh sat straighter.
“What?”
“Probably ventilation.”
“Probably is having an excellent night.”
“It’s a hum. Low. Barely anything.”
“Is there plant in that section?”
Aamir was already searching.
“No active plant,” he said.
Aamir opened the closure archive.
The first document was a scanned engineering drawing from 1998, its lettering slightly crooked from whatever machine had swallowed the original paper. Platform Zero had once served suburban trains from the western approach. The redevelopment had not simply stopped using it. The track had been cut. The western tunnel connection had been blocked behind a reinforced retaining wall. At the east end, the rails terminated beneath what was now a retail service basement. Traction power had been removed. Signal cables had been lifted back to the nearest live junction.
Niamh traced the route with one finger.
“So nothing can get there.”
“Nothing on rails.”
“Could a maintenance vehicle be stored inside?”
Aamir shook his head. “Not unless it’s been there twenty-eight years. Look.”
A later survey from 2014 included photographs. The abandoned platform was narrow, tiled in cream and dark green, its enamel signs still fixed to the wall. Rusted rail remained beside the platform edge for a short length because removing it would have required more demolition than leaving it. But both ends of the old running line disappeared into solid construction.
No connection to the network.
No route in.
No route out.
“Could the survey be wrong?” Niamh asked.
“Anything can be wrong.”
“You’re becoming philosophical.”
“I’m becoming annoyed.”
“Good. Stay useful.”
He opened a more recent building model. “The void is still there. They use adjacent spaces for cabling and ventilation. Platform cavity itself is marked restricted because the old materials weren’t all stripped out.”
“Hazardous?”
“Mostly access risk. Uneven surfaces, obsolete electrics, possible asbestos in sealed ducts. Nothing that explains an occupied track circuit.”
Niamh called Mick, who had only just returned from checking Crossover 6B.
“I need another favour.”
“You’re using them up quickly.”
“Do you know the old Platform Zero access?”
A pause.
“Why?”
“Because I asked first.”
“I know where it is.”
“Was the old rail connection ever reinstated for engineering use?”
“No.”
“Any temporary works through the cavity?”
“Not that I know.”
“Could anything on the live railway physically reach it?”
This pause was longer. Niamh could hear the background clatter of tools and the distant diesel of a works vehicle.
“No,” Mick said. “West end is behind a structural wall. East end was built over. Why are you asking me this at twelve ten in the morning?”
“Because an obsolete signalling system says a train is approaching it.”
For once, Mick did not immediately joke.
“Say that again.”
“An old interface is showing an approach occupation into Platform Zero.”
“That circuit doesn’t exist.”
“That has been mentioned.”
“Then the computer is wrong.”
“Probably.”
“There’s that word.”
“Apparently everybody gets one tonight.”
Mick lowered his voice. “You want me down there?”
“No. Ciara has already reached the active corridor. I want you at the distribution room above it. Verify there is no power feed into the abandoned platform and tell me if any building systems are behaving oddly.”
“You’re taking this seriously.”
“I take unexplained infrastructure seriously.”
“Fair.”
“And Mick?”
“Yeah?”
“If anything looks wrong, you leave. I don’t need heroics.”
He snorted. “From you?”
“Especially from me.”
She ended the call before he could make that personal.
Aamir was watching her.
“What?”
“Nothing.”
“People keep saying that while visibly having thoughts.”
“You tell everyone else not to be heroic.”
“I’m management. Hypocrisy is part of the pension.”
He did not laugh.
Niamh turned back to the archived image of Platform Zero.
The photograph had been taken under work lights. Old green enamel letters spelled EMERALD HARBOUR CENTRAL above benches coated in dust. The platform edge carried a faded warning stripe. An advertising frame contained the pale ghost of a poster removed years earlier.
It was not dramatic.
That made it worse.
A place did not need to look haunted to be impossible.
Niamh keyed the radio. “Back away from the sealed access. Stay at the junction.”
“Because of a hum?”
“Because I don’t know what it is.”
That was enough. Ciara’s tone changed. “Copy.”
Niamh opened the station incident protocol and created a new event.
Unknown infrastructure anomaly, Concourse B service level.
She hated the phrase immediately. It sounded like something written after a sinkhole swallowed a bus.
Aamir looked over. “You’re logging it?”
“Yes.”
“You know if it’s a software fault, this will become legendary.”
“I can survive being mocked.”
“Can you?”
“No, but I can retaliate.”
She assigned Ciara as local contact, requested an electrical technician and asked security to restrict nonessential access to the lower service corridor.
Then she called West Control and told them not to energize any equipment associated with the old station footprint without clearing it through her.
The response was predictable.
“What equipment?”
“Anything that turns out to exist.”
“Niamh, are you having a difficult night?”
“I was having a perfectly ordinary difficult night until five minutes ago.”
“What happened five minutes ago?”
She looked at the words preserved on Aamir’s exported log.
“An old system reported a movement on a disused platform.”
There was a pause long enough to hear the change in attitude.
“Actual movement?”
“Unverified.”
“Train?”
“Unverified.”
“Do we need to stop services?”
Niamh looked at the active station. Three passenger trains remained: one at Platform Two, one approaching Platform Seven from the south, one empty stock movement waiting beyond the east throat.
This was the decision.
There was still no evidence of danger on the live railway. Stopping everything because a dead computer had hallucinated a train could strand hundreds more people and create its own risk.
But the old platform sat beneath the station. If something electrical, structural or mechanical was happening behind that sealed access, she did not yet know what it could affect.
“Hold the inbound at the outer signal,” she said. “Keep the Platform Two service where it is. Stop the stock move.”
Aamir looked at her sharply.
The effect reached the station within a minute.
Platform Two’s passengers had already boarded and were staring through the windows at staff who had stopped pretending departure was imminent. The incoming service remained a string of white lights beyond the southern throat. Its driver called to ask whether the signal failure had spread.
“No,” Niamh told him. “Different issue.”
“What issue?”
“Station protection.”
“That tells me nothing.”
“It tells you to remain at danger until I release you.”
“Fair enough.”
He said it without offence. Railway people were accustomed to obeying instructions before receiving the story behind them. The public was less charitable.
The customer-information line lit three times in ten seconds.
Ciara, still in the service corridor, said, “If you’re holding trains, I need something to tell the platforms.”
“Technical inspection.”
“That phrase has about ninety seconds before somebody decides it means bomb.”
Niamh looked toward the two police officers from the stag-party incident. One was speaking to station security; the other was looking up at the blanking departure board with the alert posture of somebody whose night had just stopped being amusing.
“Have security brief the officers that there is no known security threat,” she said. “Keep the language exact. Unknown infrastructure issue. No evidence of fire, explosive device or intrusion.”
“No evidence of anything, really.”
“Correct.”
“People hate that.”
“They hate being lied to more.”
Niamh switched to the public-information team. “Do not post Platform Zero. Do not post train. We have neither. Say services are temporarily held during a technical inspection.”
Aamir raised a finger. “One person on Platform Three is filming the control-room windows.”
“They’re allowed.”
“And somebody has already posted that the station is being evacuated.”
“It isn’t.”
“I know. The internet doesn’t.”
“Correct it.”
“With what?”
“The truth we have.”
He looked amused. “That’ll never catch on.”
Niamh checked the lower-corridor feed again. The camera could not see the sealed access, only the grey fire door at the edge of active station space. Ciara and two maintenance staff appeared there, moving back toward the safe side as instructed.
A fine line of dust drifted from the upper hinge after the door swung shut.
Niamh leaned closer.
“Run that back.”
Aamir did.
Dust, falling from the concrete ceiling.
No impact. No person touching the wall.
Just vibration.
“Could be from the works vehicles,” he said.
“The possession hasn’t started.”
“Road traffic?”
“Under three floors of station?”
“I am trying very hard to remain boring.”
“Keep trying.”
Mick called from the distribution room.
“Old platform feed is physically gone,” he said. “Not isolated. Gone. Copper removed back to the main board.”
“So the platform cannot have traction power.”
“Correct.”
“Lighting?”
“Also disconnected.”
“Signal supply?”
“Nothing.”
Niamh looked at the green line moving on the legacy screen.
“Then whatever that system thinks it is seeing,” she said, “it is not seeing through equipment we own.”
Aamir’s expression sharpened.
That was the first sentence either of them had said that opened a door to something neither wanted to name.
West Control said, “On what authority?”
“Mine. Temporary station protection while we investigate an infrastructure anomaly.”
“That’s going to back up the south line.”
“I know.”
“How long?”
“Until I can tell you more than I can tell you now.”
A breath, irritated but contained. “Confirmed.”
Niamh hung up.
Aamir said, “That’s expensive.”
“Less expensive than guessing wrong.”
“I agree.”
“I know.”
“I wanted the record to show I agreed before somebody invoices us for the national economy.”
She was about to answer when every departure board in the concourse blinked.
Not off.
Blink.
Once.
The columns of times vanished and returned.
Aamir turned toward the glass.
“What was that?”
“Display refresh?”
“Station-wide?”
The boards blinked again.
Passengers looked up.
A cleaning machine stopped near Platform Six as its driver glanced at the screens.
The overhead announcements cut out in the middle of a sentence.
For two seconds, the station became startlingly quiet.
Then the sound returned.
Aamir checked network status. “No reboot logged.”
Niamh’s phone vibrated.
NOEL: did your station just eat the app
She called him instead of typing.
He answered on the second ring. “You said sleep.”
“Why are you looking at the station app?”
“Because Brenda changed me.”
“Noel.”
“Fine. I was checking if you were still delayed. All the departure times disappeared for a second.”
“Only Emerald Harbour?”
“I don’t know. I’m not running a national investigation from my duvet.”
“Check another station.”
“You’re very demanding for someone who told me to sleep.”
“Please.”
The joke left his voice. Niamh did not say please often when she could give an instruction instead.
“Hang on.”
She heard tapping.
“Other stations are normal.”
“Send me screenshots of what you saw if you have them.”
“I didn’t screenshot because I’m not a lunatic.”
“Debatable.”
“What’s going on?”
“Probably a local systems issue.”
There was a small silence.
“Probably?” Noel said.
Niamh looked at Aamir.
The night had become infested with that word.
“I’m working it.”
“Do you want me to call Mam?”
“No.”
“That means yes in Keating.”
“It means absolutely not. Go to sleep.”
“Text me when you’re done.”
“I will.”
“Promise?”
She nearly gave him the automatic answer.
Then the low hum came through Ciara’s open radio again.
It was louder now.
“I’ll text,” Niamh said, and ended the call.
Niamh tore a sheet from the incident pad and wrote the times by hand.
12:07 — P0 ALERT.
12:08 — HUM REPORTED.
12:09 — DISPLAY INTERRUPTION.
It was an old habit from degraded-mode training: when electronic systems became part of the incident, stop trusting them to preserve the incident. Paper was slow, ugly and wonderfully incapable of updating itself behind your back.
Aamir noticed. “You think the logs might fail?”
“I think I don’t know what’s failing.”
She underlined P0 once. Beside it she wrote NO LIVE CONNECTION.
The statement calmed her for perhaps half a second. It was a fact. Facts were useful even when they were inadequate.
Then the hum came through Ciara’s radio again, and the paper trembled faintly beneath Niamh’s hand.
Aamir had gone pale around the mouth.
“What?”
He pointed at the legacy monitor.
The green line had returned beneath the station plan.
This time it did not vanish.
It began at the western edge of the archived map and moved slowly toward Platform Zero.
One block at a time.
“That looks like track occupation,” Niamh said.
“It’s drawn like track occupation.”
“Could it be replaying an old log?”
“I checked. No playback mode.”
“Simulation?”
“Disabled.”
“Training environment?”
“Not on this machine.”
The green line advanced another block.
Aamir opened the system clock.
12:09:14.
The legacy map showed an estimated approach time of 00:00:38.
Niamh frowned. “That makes no sense.”
“What?”
“The estimate.”
Aamir stared.
The countdown dropped.
00:00:37.
00:00:36.
“That isn’t a clock time,” he said.
“No.”
“It’s time to arrival.”
The system had used the same field for decades. A train approaching a platform would display minutes and seconds until the track circuit was predicted to occupy the stopping point.
Thirty-five seconds.
There was no train.
No live track.
No power.
No route.
Niamh stood.
“Clear the lower corridor.”
Aamir grabbed the radio. “Ciara, withdraw to the active plant-room fire doors now.”
Ciara answered immediately. “Moving.”
“Security,” Niamh said into another channel, “close Concourse B lower access. Nobody goes down without my authorization.”
“What’s happened?”
“Unknown. Just do it.”
She called the electrical desk.
“Confirm power state for the old Platform Zero footprint.”
“Dead.”
“How dead?”
“Feed removed years ago. There is nothing to isolate.”
“Check again.”
“I’m looking at it.”
“Physically check the distribution panel.”
A sigh. “Sending someone.”
Twenty-eight seconds.
Aamir said, “Niamh.”
“I see it.”
The green occupation had entered the final approach block on the old schematic.
Twenty-five seconds.
Below them, passengers had begun noticing that staff were moving with purpose. Heads turned toward the closed access near Concourse B. A police officer spoke into his radio.
Niamh keyed the station public-address override.
Her own voice came back to her through a fraction-of-a-second delay.
“Attention please. Due to a technical issue, services at Emerald Harbour Central are temporarily being held. Please remain on the public concourse and follow staff instructions. There is no need to leave the station at this time.”
Aamir looked at her.
“No need?”
“If I say evacuate without knowing why, I create a crush at Harbour Road.”
“Agreed.”
Twenty seconds.
The hum deepened.
Not through the radio now.
Through the floor.
Niamh felt it first in the metal frame of the console beneath her palm.
A vibration so low it was almost pressure.
She stopped speaking.
Aamir put his hand flat on the desk.
“That’s not software.”
“No.”
Fifteen seconds.
The main control-room lights flickered.
A controller at the far end swore.
“Power?” Niamh called.
“Stable,” somebody answered.
The analogue clock over the concourse ticked forward.
12:09.
The digital departure boards blinked again.
Every scheduled time disappeared.
For a moment each board showed only the station logo.
Ten seconds.
The security radio erupted.
“Control, lower corridor—there’s dust coming through the seal.”
Niamh grabbed the handset. “Is anyone still down there?”
“Ciara and maintenance are behind the fire door.”
“Keep them there. Nobody approaches.”
Seven seconds.
The low vibration became a tremor.
A coffee cup walked half an inch across Aamir’s desk.
Five.
The departure boards went black.
Four.
Niamh’s phone shut itself off.
Three.
Every mobile phone visible through the glass lit white at once as if rebooting.
Two.
The station lights dimmed.
One.
The legacy monitor flashed.
ARRIVAL.
Every digital clock in Emerald Harbour Central changed to 00:00.
The analogue clock above the concourse kept moving for one more second.
Then its second hand stopped.
The entire station shuddered.
From somewhere beneath their feet came a sound no dead platform should have been able to make.
Steel screaming on steel.
And beneath it, impossibly, the rising thunder of wheels entering a station that no living timetable still admitted existed.