{
  "id": 1246474,
  "title": "ENAMETOOLONG: как одно грязное поле в базе уронило сборку статики",
  "url": "https://urgent.news/2026/08/16/enametoolong",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-16T09:52:47.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/numart/enametoolong-kak-odno-ghriaznoie-polie-v-bazie-uronilo-sborku-statiki-1o4c"
  },
  "original_language": "ru",
  "account": "The ENAMETOOLONG error on podbor-minuta.ru was caused by a single dirty field in the database that led to an unstable static build. The website gathers apartment data from various sources and builds page addresses using city, district or metro, number of rooms, and price information. Sometimes, the district field contained a long description instead of the district name, making it over 295 characters long. When the generator created folder names for each address, the 255 byte limit of the file system couldn't handle the excess length, causing the mkdir function to fail and the entire build to crash. The Docker cache had masked the issue, but during a clean build in the continuous integration pipeline, the error became apparent. To fix the problem, the development team added a length check in the address generator function, limiting any address segment to 120 characters, well below the file system limit. They also implemented a data cleaning process to filter out problematic entries at the source, removing long descriptions and other unreliable data. By addressing both the generator function and the data cleaning process, the website ensures that no single bad record can bring down the entire static build.",
  "summary": "У нас на podbor-minuta.ru около 600 страниц-подборок квартир собираются заранее в готовый HTML. Адрес каждой страницы строится из данных: город, район или метро, число комнат, цена. Например, /novostroyki/rayon/nagatino/2-komnatnye. Однажды сборка упала с ошибкой ENAMETOOLONG - имя файла слишком длинное. Как это вышло. Данные о квартирах мы собираем автоматически с разных сайтов. В одной записи…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}