Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk4 min

Why Codex Said SKILL.md Was Invalid When It Ran Out of File Descriptors

A Codex warning about invalid SKILL.md files included “Too many open files (os error 24).” Here’s why that points to a failed read, and what the incident report did—and didn’t—prove.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In one September 2026 Codex incident report, a warning that 13 skills had invalid SKILL.md files turned out to contain a more revealing detail: failed to read file: Too many open files (os error 24). That message indicates the operating system could not open a file; it does not, by itself, show that the Markdown was malformed. The report’s author linked the failure to file-descriptor pressure, but did not isolate the cause or establish that the same explanation applies to every Codex warning.

What the “invalid skill” warning actually said

The postmortem, published on DEV Community on September 26, 2026, describes Codex skipping 13 skills because their SKILL.md files were reported as invalid. Beneath that warning was the nested error: failed to read file: Too many open files (os error 24). The author identifies the incident record as dated September 21, 2026. Read the incident report.

As an Amazon Associate I earn from qualifying purchases.

The distinction is diagnostic. A syntax or schema problem is ordinarily found after a program reads the file and evaluates its contents. Here, the nested error says the read itself failed. Changing Markdown text would not address a process that cannot open the document. The word “invalid” in the warning was therefore not enough to establish that the files’ contents were invalid.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This is one author’s postmortem, not proof of how every Codex version handles every skill-loading failure. Use the nested error to guide investigation rather than assuming all “invalid” warnings have the same cause.

What the author measured—and what the counts mean

The author’s 2026 diagnostic record included these observations:

Observation Recorded value What it describes
Shell soft NOFILE limit 256 The shell’s soft open-file limit
Shell hard NOFILE limit Unlimited The shell’s hard limit, as recorded
Kernel-reported per-process maximum 92,160 The maximum reported by the kernel in the author’s diagnostic record
Desktop app-server numeric descriptors 274 A snapshot of the app-server process
Desktop app-server PIPE entries 201 Pipe entries in that process snapshot
Desktop app-server direct children 67 Direct child processes in that snapshot
Globally enabled MCP servers 23 The configured global MCP-server count
Skills in the agent tree 61 An inventory count
Skills in the Codex skill directory 16 An inventory count
Skills in plugin caches 112 An inventory count

All figures in the table are the incident author’s observations, not independent measurements or general Codex limits. Inventory totals show how many skills were present in those locations; they do not show how many files were open simultaneously. Likewise, the shell’s soft limit of 256 cannot be directly compared with the running Desktop app-server’s 274 descriptors: the report did not establish that the app-server inherited that shell limit.

The snapshot showed many pipes alongside the read failures, but did not identify which exact descriptor allocation failed. Counts are clues about the incident, not proof of a specific failing operation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why file-descriptor pressure was the working explanation

On Unix-like systems, file descriptors are process-level references used for open files and communication channels such as pipes. A process that cannot obtain another descriptor may fail to open a file even when the file exists and its contents are valid. The reported os error 24 is consistent with that kind of resource exhaustion.

The author’s hypothesis was that parallel skill loading needed temporary descriptors while a long-running app-server already held many communication pipes associated with session-specific MCP child processes. The recorded pipe and child-process counts gave that explanation some support, but the author did not run a controlled test separating skill-loader concurrency from retained pipes. It remains a plausible explanation for this incident, not a proven general cause of Codex skill errors.

What changed in the reported remediation

The author described changes to launch limits and default MCP configuration, then checked whether the affected workflows ran successfully:

  • The CLI launch path was changed to request a soft NOFILE limit of up to 65,536, while respecting a lower hard limit and preserving behavior if the operating system refused the change.
  • A domain launcher received the same target.
  • The global MCP default was reduced from 23 servers to 8. Comfy and video-vision plugins were disabled by default, while domain profiles remained available for work that needed more tools.
  • An attempted user-session launchd maxfiles change was rejected with Operation not permitted. The report does not claim that the Desktop GUI’s limit was raised.

A configured target is not the same as a verified effective limit. The verification note says a wrapper probe issued ulimit -Sn 4096 from a parent process whose soft limit was 256. According to the author, this showed that the launch path could attempt a higher limit; it did not establish that the final 65,536 target took effect in every launched process.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What the recovery checks establish—and what they do not

After hot reload, the author recorded 116 numeric descriptors and 78 PIPE entries in the Desktop app-server snapshot, compared with 274 and 201 before the changes. The author also reports shell syntax checks, parsing and MCP-list checks for 11 profiles, and a strict doctor run with 23 checks marked OK.

Fresh ephemeral runs with both base and full profiles reportedly exited with status 0, produced the requested response marker, and emitted no file-descriptor or skill warnings. A follow-up check found no new MCP orphans. These are positive results for the runs that were checked; they are not evidence of a permanent fix or a guarantee that the problem cannot recur. The author characterized the runs as bounded smoke checks, not a long-duration session-churn test.

The report’s proposed way to investigate recurrence was to watch pipe and direct-child counts across sessions. If a fresh run with a verified effective limit continued to fail after os error 24 disappeared, the author said the diagnosis should shift toward a separate syntax or schema issue. That is a useful distinction: once the read succeeds, a content-level failure becomes possible again.

Keep diagnostic output from exposing credentials

The author also reported that raw configuration diffs and nearby lines exposed credential values during the investigation. This is a separate security concern, not evidence about why the skill reads failed. The postmortem leaves credential rotation as an unresolved follow-up.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When diagnosing configuration, report server names, enabled flags, counts, and whether credentials are present. Avoid dumping raw configuration or adjacent lines that may reveal secret values.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.