Why Did My Skill Upload Fail?
Last updated: March 21, 2026
Skill uploads can fail for two reasons: the file itself doesn't meet the upload requirements (wrong format, too large, missing SKILL.md), or the skill's name or description breaks the naming rules. This article covers every validation check and the exact error you'll see for each one.
Skill Naming Rules
Skill names are validated when you create a skill through any method — uploading files, writing instructions manually, or having the agent create one. The rules are:
Rule | Error if Violated |
Lowercase letters, digits, and hyphens only ( | Name 'My_Skill' must be hyphen-case (lowercase letters, digits, hyphens only) |
Cannot start or end with a hyphen | Name '-my-skill' cannot start/end with hyphen or contain consecutive hyphens |
No consecutive hyphens ( | Name 'my--skill' cannot start/end with hyphen or contain consecutive hyphens |
Maximum 64 characters | Name too long (72 chars). Max 64. |
Name is required (cannot be empty) | Name is required |
Valid names
email-outreach-playbook, weekly-sales-summary, crm-logging, data-cleanup-v2
Invalid names
My_Skill (underscore), Email Playbook (spaces), mySkill (uppercase), -my-skill (starts with hyphen), my--skill (consecutive hyphens)
Description Rules
Rule | Error if Violated |
Description is required (cannot be empty) | Description is required |
No angle brackets ( | Description cannot contain angle brackets |
Maximum 1,024 characters | Description too long (1200 chars). Max 1024. |
File Upload Validation (for .zip and .skill archives)
When you upload a .zip or .md file, the platform runs these checks in order. The upload fails at the first check that doesn't pass.
Check | Limit | Error message |
Valid zip archive | — | Invalid or corrupt archive |
File count | 100 files max | Archive contains too many files (max 100) |
No unsafe paths (absolute paths, | — | Unsafe file path in archive |
Individual file size | 10 MB per file | File too large in archive |
Compression ratio | 100:1 max (zip bomb defense) | Suspicious compression ratio detected |
Total decompressed size | 50 MB total | Archive total size exceeds limit |
Contains a SKILL.md file | — | invalid_skill_md |
SKILL.md has valid YAML frontmatter with | — | invalid_skill_md |
Supported Upload Formats
.md— treated as the SKILL.md file regardless of its original filename.zip— extracted with all the security checks aboveOther files — stored with their original filename alongside the SKILL.md
What "invalid_skill_md" Means
This error appears when the SKILL.md file is missing or its frontmatter is malformed.
Specifically:
The archive doesn't contain a file named
SKILL.mdThe
SKILL.mddoesn't start with valid YAML frontmatter (the---delimited block at the top)The frontmatter is missing the required
namefieldThe frontmatter is missing the required
descriptionfieldThe
nameordescriptionfails the validation rules listed above
Correct SKILL.md format
---
name: my-skill-name
description: A clear description of what this skill does and when to use it.
---
## Instructions
Your skill instructions go here...Name Conflicts (Duplicate Names)
If you create a skill with a name that already exists in your workspace, the system automatically appends a number to make it unique — for example, my-skill becomes my-skill-2. This happens silently; you won't see an error, but the skill may have a different name than you expected. Check the skill's name in the Skills page after creation.
Related Docs
Still Need Help?
If this didn't resolve your issue, reach out to support at support@gumloop.com.