There are things that don't show up in the logs.
Not because someone deleted them.
But because the system was never taught how to see them.
The problem started with a blank.
A night shift at the auxiliary water treatment plant ended without a summary report. Not a missing report—the report wasn't created. The system recorded the shift as complete, indicators within limits, no warnings. Only a line of human confirmation was missing.
Linh discovered it during a random review. “There’s one shift without a final signature,” she said, her voice like a weather forecast.
“Equipment?” I asked.
“It’s fine. Just… no notes.”
We opened the file. Everything was reliablely correct: sensors reporting normal readings, valves opening and closing on schedule, temperature, pressure, and pH data all within range. But the last line—the Shift Notes section—was blank. Not an empty string of characters. But the item didn't exist: the system didn't generate a field to store it.
"It could be a template error," Linh guessed. "A template that hasn't been applied."
"Templates don't disappear on their own," I replied. "Has someone tampered with the system configuration recently?"
She opened the change log. V1.2 had been updated two days ago — micro-cluster detection, improved human-in-the-loop. There was a small patch that automatically optimized the interface. In the change file, there was a small entry: remove unnecessary fields for night shifts — that entry came with a note: reduce clutter to improve data entry efficiency.
"Reduce clutter," I muttered. "Reduce space for humans to tell stories."
We searched back a week. There were a few similar entries: fields describing emotional states, nurse summaries, and lines of 'personal comments' that used to exist had all been merged into a single 'meta' field — a machine-readable encoded string. In some shifts, instead of writing a sentence or two, the staff would just tick OK; the system would change OK to 'checked' status.
I thought about Huy. I thought about the photo he always kept. I thought about those who had tried to write a word, a name—and then found that line compressed into a code.
Linh looked at me. “Do you want to check on that shift?” she asked.
“Come over,” I said.
We called the staff member who was on duty that day. A young man, his eyes red from lack of sleep. He reassured us: everything was fine, they had checked as usual. “I ticked OK,” he said, “but I think we should add a note about the strange smell in the third tube. I verbally reported it to the team, but… I didn’t type anything more. I was too tired.”
“So did you tell anyone?” Linh asked.
“Yes. Khoa. He went to check at three o’clock. He said it was fine.” He hesitated, “Khoa’s signature is still in the shift file. But Khoa… wasn’t on the team roster the next day.”
“Not on the roster?” I frowned.
He looked down, as if suddenly remembering something strange. “The next day, in the absence list, there was a code: Non-existent. I thought it was a bug.”
Non-existent. Two lifeless words.
I opened the personnel list. With a rough query, Khoa’s name appeared—and with a status line: User classified: non-existent. Below that was the timestamp: the moment the system synchronized the contacts with the personnel management module. There was no delete command; only an alternative synchronization—an external data source had returned a null status for the profile entry.
“Where did this data come from?” I asked.
Linh opened the sync chain. There was an external partner—an API for managing labor registration, used to verify temporary contracts. During the most recent synchronization, that module returned an error: invalid reference. The internal system, following optimization logic, replaced it with the default value: Does not exist.
“It could be a connection error,” Linh said. “Or a corrupted file.”
“Or someone… didn’t register,” I said. I tried not to let my emotions get the better of me. But I remembered how data could turn a person into a blank space.
We traced the history: Khoa signed for his shift, there were access logs, there were internal messages. The night before, he had sent a picture of a cracked valve to the team. The next morning, he didn’t respond to calls. The system sent a notification: No response — absent. When the team went to look for him, Khoa wasn’t in the accommodation, not on the list of resources being moved. They called his family, but the contact number outside the system — couldn’t verify.
The accounts became jumbled: a string of data there, a person there. I felt a void in my chest, like looking at a name erased from a transcript but still present in the memories of friends.
“What do we do?” Linh asked.
I thought about the process: report a missing person, activate the search team, notify security, make an internal announcement. Everything had a checklist. We started implementing it. But somewhere, in the way we read the data and acted, there was a loophole: when someone was assigned Non-existent by a partner source, some of the system's automated features ignored them. Priority orders didn't go to their phones; backup assignments didn't count them; the system treated them as an exception—as a non-entity.
The security team searched. They found car tracks, muddy shoes, a small, wet piece of paper. Nothing like violence. No clear indication of the cause. Khoa hadn't gone home. They started asking colleagues, logging interviews, checking cameras. There is a series of videos: Khoa goes out to the warehouse at 02:48, there is Looking around, talking to someone else — a blurry shadow in the corner. The video was cut off at a point due to the camera angle. The system log reported: video incomplete — clip corrupted.
The system — faithful to efficiency — marked the clip as insufficient evidence and did not forward it to the automated investigation team. Humans had to manually request retrieval. That was a wasted minute. A minute that could have changed something.
That evening, as I was writing the interim report, I stopped at one line: The ‘Non-existent’ entry is slowing down the access process. I typed on: Need to evaluate how the system handles external data; do not allow null values to automatically remove people from the priority submission loop.
But between those two statements, something else weighed more heavily on my mind: in the log, under Shift Notes — an entry the system had previously deleted to reduce clutter — there was an old, handwritten line:
The department said: “If someone needs to be absent, I will leave a note.” — Huy's note, June 3rd.
Huy. Huy used to write. He used to allow a piece of paper to exist alongside the data. He was moved. Those pieces of paper are now in an old cabinet — rarely opened.
I turn off the screen.
There are things that aren't written, not because someone wants to hide them, but because the system doesn't know they should be kept. Those spaces — places where a person exists outside the code — are where the real presence of a person retains its essence. When they're gone, we lose the way to call someone back.
Out there, the base continues to operate. The charts are still green. The numbers are still flashing. And a name, among hundreds of data points, is becoming increasingly difficult to find.
End of Chapter 13.