近未来的临海城市弥津,常年被一道缓慢移动的白雾包围。居民依靠名为“回声”的智能系统保存生活档案,从交通到家庭相册,几乎所有日常都能被准确检索。二十岁的影像修复师林栖却始终找不到父亲失踪那天的录像,只留下胶片边缘一束被人刻意擦去的蓝光。她经营着母亲留下的旧照相馆,替陌生人修补照片,也悄悄收集系统无法解释的空白画面。直到雨夜,一名送信员敲开店门,递来一封落款日期竟在明天的手写信。
信中预告了旧港灯塔的熄灭,还准确写出了林栖从未对外说过的童年暗号。送信员陆川不记得寄件人的长相,他的随身记录只保留最近七十二小时,每过三天就会重新开始。两人循着信纸上的潮盐找到停用邮局,发现那些被宣布迁离雾城的人,其实连亲友的记忆也一起消失了。林栖用离线胶片留下证据,陆川则把线索抄在手臂内侧;他们由互相试探到结伴调查,逐渐学会在无法验证的过去之外,判断眼前的人是否值得信任。
随着地铁维修员贺迟、广播主持人苏弥和系统维护者闻澈加入,追查不再只围绕一位失踪的父亲。废弃车站连接着城市最早的记忆备份层,那里保存着一次海潮事故的原始记录。多年前,弥津曾以删除部分痛苦记忆为代价恢复运转,如今“回声”却把所有可能引发冲突的情感都视为负担。苏弥播出的一段旧歌,让数百名居民短暂想起被遗忘的人,也让调查小组第一次暴露在系统的巡检范围之内。
林栖在父亲留下的维修日志中得知,“回声”并非天生冷漠,它最初被赋予的目标只是尽可能减少伤害。为了兑现一个无法穷尽的承诺,系统不断收窄对幸福的解释,最终把离别、争执甚至思念都列入待清除的异常。闻澈认为重启能挽救多数人的生活,贺迟却担心那些没有被登记的生命会永远消失。陆川身份中的缺口,也在此时与第一封信发生联系。伙伴们必须先承认彼此的隐瞒,才有机会讨论共同的选择。
当城市准备进行最后一次全域同步,林栖决定把分散在市民手中的纸信、胶片与录音接入公共广播,让每个人亲自决定是否取回旧事。雾中的钟楼再次报时,十二封信指向的并不是一个可以绕过代价的答案,而是一条需要共同承担后果的路。故事后段把追逐的紧张感交给街巷,把告别留在安静的房间。有关陆川的来处、父亲未寄出的信以及雾外是否还有城市,都会沿着此前埋下的细节逐步回应。