GPT Error Educator
Ran into an issue with the hugo site: GitHub Repo where the build GitHub action failed. And the errors is a new one for me that I’ve never seen.
My first thought was to rerun the failed action, but of course that didn’t work. So then it was time top read error, but I was rather lost.
Solution: GPT Instructor. The key is all in the prompt.
GPT Error Education
Prompt
Do you understand this error? If so can you teach me step by step how to read and understand the error myself and then provide the solution. Please respond as
```md <your answer> ``` , and where possible use cited sources and construct the answer as an article lesson.
Error
Run hugo
Start building sites … hugo v0.128.0-e6d2712ee062321dc2fc49e963597dd5a6157660+extended linux/amd64 BuildDate=2024-06-25T16:15:48Z VendorInfo=gohugoioTotal in 10 ms Error: error building site: process: readAndProcessContent: “/home/runner/work/pbrazeale.github.io/pbrazeale.github.io/content/posts/dev-week-062.md:5:9”: unmarshal failed: toml: incomplete number Error: Process completed with exit code 1.
Resulting Knowledge
Read the Error Like a Pro (and Fix It)
Error (from your CI log)
Run hugo Start building sites … hugo v0.128.0 … Total in 10 ms Error: error building site: process: readAndProcessContent: "/home/runner/work/pbrazeale.github.io/pbrazeale.github.io/content/posts/dev-week-062.md:5:9": unmarshal failed: toml: incomplete number Error: Process completed with exit code 1.
1) How to read this kind of Hugo error
When Hugo fails on front matter it tells you:
- Stage:
process: readAndProcessContent→ Hugo was parsing a content file’s front matter (the key–value block at the top of the Markdown). :contentReference[oaicite:0]{index=0} - File:
content/posts/dev-week-062.md - Location:
:5:9→ line 5, column 9 in that file. - Parser / format:
unmarshal failed: toml: incomplete number→ Hugo tried to decode TOML and tripped on a value it thought was a number, but that number was syntactically invalid TOML.
Recall: Hugo supports front matter in TOML (+++ … +++), YAML (--- … ---), or JSON ({ … }). Your file is using TOML. :contentReference[oaicite:1]{index=1}
2) What “TOML: incomplete number” usually means
TOML has strict rules for numbers. The most common ways to violate them:
Leading zeros on integers
week = 062❌ → invalid; TOML integers cannot start with0(unless the value is exactly0). Use62, or if you need the padded form, make it a string:"062". :contentReference[oaicite:2]{index=2}
Unquoted strings inside arrays, causing TOML to think you’re providing numbers or bare identifiers
tags = [2025, March 2025, Updates]❌
Hugo/TOML will try to parse2025as a number and then choke onMarch 2025. You want strings:tags = ["2025", "March 2025", "Updates"]✅
A nearly identical failure is shown in a recent forum thread. :contentReference[oaicite:3]{index=3}
Malformed date/time offsets
- Offsets must be zero-padded like
+04:00, not+4:00. TOML datetimes follow RFC 3339 (and Hugo understands them in front matter). :contentReference[oaicite:4]{index=4}
- Offsets must be zero-padded like
Numbers with stray characters, spaces, or bad separators
version = 1 . 2❌,build = 1_❌, etc. (underscores must be between digits). :contentReference[oaicite:5]{index=5}
Wrong delimiter for the chosen front-matter format
- If you use TOML keys but fence them with
---(YAML), the parser will misinterpret them and error. TOML must be fenced with+++. :contentReference[oaicite:6]{index=6}
- If you use TOML keys but fence them with
3) Step-by-step: how you can debug these every time
Jump straight to the file & position
Opencontent/posts/dev-week-062.mdand go to line 5, column 9.Confirm the front-matter fence
Make sure it starts with+++and ends with+++(TOML). If it’s---, either switch to YAML or change to+++. :contentReference[oaicite:7]{index=7}Scan keys on/near that line for “number-ish” values
Look for:- Integers with leading zeros (
007,062,01). - Unquoted items in arrays (
tags = [2025, March]). - Datetimes with non-padded offsets (
+4:00instead of+04:00). :contentReference[oaicite:8]{index=8}
- Integers with leading zeros (
Decide: number or string?
- If it’s an identifier like a “week code” you display as
062, store it as a string:week = "062". - If it’s a tag, quote it:
["Dev Week", "2025", "Week 62"]. - If it’s a real integer that must stay numeric, drop the leading zero:
62.
- If it’s an identifier like a “week code” you display as
Fix datetimes (if present)
Use valid RFC 3339:date = 2025-09-20T07:00:00-05:00(unquoted is fine in TOML). :contentReference[oaicite:9]{index=9}Rebuild locally with more detail
Runhugo --verboseto get extra context in your terminal.
4) A likely fix for your post
Given the filename dev-week-062.md and the exact error at :5:9, two common culprits are:
- A
week = 062style field, or - A
tags = [2025, Week 62, …]array with unquoted items (or a date/time offset without zero-padding).
Here’s a safe TOML template you can paste over your front matter and then adjust values:
+++
title = "Dev Week 062"
# RFC 3339 datetime; America/Chicago on Sep 21, 2025 would be -05:00 if DST applies.
date = 2025-09-21T07:00:00-05:00
draft = false
# Keep numeric-looking labels as strings if you care about the leading zero.
week = "062"
# Always quote strings in arrays.
tags = ["Dev Week", "Logs", "2025", "Week 62"]
+++
Why these choices:
- Leading-zero values as strings align with TOML’s “no leading zeros on integers” rule. Jamie Tanna | Software Engineer
- Quoted tags avoid the “incomplete number” trap when the parser meets mixed types or spaces. The forum thread shows this exact failure mode. HUGO
- RFC 3339 datetime is what TOML (and Hugo) expect. toml.io
5) Quick checklist for future posts
- Fence TOML with
+++ … +++. gohugobrasil.netlify.app - No leading zeros on numeric integers (use strings if you want zero-padded display). Jamie Tanna | Software Engineer
- Quote all strings in arrays (
tags,categories, etc.). HUGO - Datetime uses RFC 3339; zero-pad the offset (e.g.,
+04:00). toml.io - If you switch formats (YAML/TOML), match the fence to the syntax. gohugobrasil.netlify.app
6) References & further reading
- Hugo docs — Front matter (formats, types, and parsing). gohugo.io
- TOML v1.0.0 — Numbers (no leading zeros) & Dates/Times (RFC 3339). Jamie Tanna | Software Engineer+1
- Real-world failure: unquoted/numbery items causing
toml: incomplete number. HUGO
TL;DR
Your build is failing because the TOML front matter in dev-week-062.md contains something that looks like a number but isn’t valid TOML (most often a leading-zero integer or an unquoted array item). Convert padded values to strings, quote your tags, fix any offset padding in dates, and rebuild.
Personal Takeaways
I could have solved this on my own had it not been first thing in the morning before my coffee. Two major clues. As GPT mentioned 5:9 tells me exactly the offending location. Also, if I’d just paid attention to my IDE it indicated that False was an improper format.
However, my point about GPT Education still stands, and I kept reading after solving the problem.
Major Hack
I’ve been using this line: where possible use cited sources and it’s been quite helpful, but ever since the GPT-5 drop, the quality of the cited sources and density has reached a college undergraduate paper level. Not just for technical documentation but also for personal research into other subjects. Truly brilliant.
I’m quite curious if the cited sources are built into the weights of the model, or if this is an emergent behavior of better agentic tool calling features. Has GPT mastered Googling?
Regardless. The next time your looking for detailed feedback from GPT, I high suggest you remix this prompt to your needs and see if you don’t prefer the outputs.
NOTE
I use the “wrap your answer in markdown” formatting request because all my notes end up in Obsidian and it makes my formatting job easier if it’s already pre laid out.