Post-processing failure with no logs

I recently switched one of my sites from hand-crafted HTML, CSS, and JS to instead use Hugo. Everything generates okay when I run it locally, even inside of an Ubuntu 16.04 container (to make sure I’m not relying on an undeclared dependency). On Netlify builders, the initial build goes okay but the post-processing step does not.

Site: tlg-homepage.netlify.app
Build: https://app.netlify.com/sites/tlg-homepage/deploys/5ef0bcd88109df000712c9e4

To troubleshoot, I’ve:

  • disabled all post-processing (first via netlify.toml only, then via UI only, then both)
  • disabled netlify plugins (check 404s, a11y, etc.)
  • rebuilt without cache (via UI)
  • made ls -lah public/ part of the build step to ensure hugo is generating files
  • passed hugo’s --debug flag to get more verbose logging
  • build and deploy with Netlify CLI (netlify build followed by netlify deploy)

So far nothing has worked. When I push commits, the deployment message is the commit message. When I manually trigger a build off of the master branch via netlify UI, it says “deploy processing failed after 5 attempts”.

Netlify CLI response was as follows:

Deploying to draft URL...
✔ Finished hashing 105 files
✔ CDN requesting 10 files
✔ Finished uploading 10 assets
= Waiting for deploy to go live... ›   Warning:

and then a JSON payload here:

{
  "deploy": {
    "id": "5ef0c8affaa85a028153fbfe",
    "site_id": "ab9a6ca1-ec36-4889-872c-074c3e85a1e0",
    "build_id": null,
    "state": "error",
    "name": "tlg-homepage",
    "url": "https://www.thelonelyghost.com",
    "ssl_url": "https://www.thelonelyghost.com",
    "admin_url": "https://app.netlify.com/sites/tlg-homepage",
    "deploy_url": "http://5ef0c8affaa85a028153fbfe--tlg-homepage.netlify.app",
    "deploy_ssl_url": "https://5ef0c8affaa85a028153fbfe--tlg-homepage.netlify.app",
    "created_at": "2020-06-22T15:05:19.918Z",
    "updated_at": "2020-06-22T15:05:26.330Z",
    "user_id": "58751037c4d9cc5fac292744",
    "error_message": "Deploy processing failed after 5 attempts",
    "required": [],
    "required_functions": null,
    "commit_ref": null,
    "review_id": null,
    "branch": "master",
    "commit_url": null,
    "skipped": null,
    "locked": null,
    "log_access_attributes": {
      "type": "firebase",
      "url": "https://netlify-builds1.firebaseio.com/deploys/5ef0c8affaa85a028153fbfe/log",
      "endpoint": "https://netlify-builds1.firebaseio.com",
      "path": "/deploys/5ef0c8affaa85a028153fbfe/log",
      "token": "[redacted]"
    },
    "title": null,
    "review_url": null,
    "published_at": null,
    "context": "deploy-preview",
    "deploy_time": null,
    "available_functions": [],
    "summary": {
      "status": "unavailable",
      "messages": []
    },
    "screenshot_url": null,
    "site_capabilities": {
      "title": "Netlify Team Free",
      "asset_acceleration": true,
      "form_processing": true,
      "cdn_propagation": "partial",
      "build_gc_exchange": "buildbot-gc",
      "build_node_pool": "buildbot-external-ssd",
      "domain_aliases": true,
      "secure_site": false,
      "prerendering": true,
      "proxying": true,
      "ssl": "custom",
      "rate_cents": 0,
      "yearly_rate_cents": 0,
      "ipv6_domain": "cdn.makerloop.com",
      "branch_deploy": true,
      "managed_dns": true,
      "geo_ip": true,
      "split_testing": true,
      "id": "nf_team_dev",
      "cdn_tier": "reg"
    },
    "committer": null,
    "skipped_log": null,
    "manual_deploy": true,
    "file_tracking_optimization": false,
    "plugin_state": "none"
  }
}

This does not appear to be a problem for thelonelyghost-blog.netlify.app site when I triggered a fresh build. The main differences are outlined as follows:

  • blog is built with Gatsby, homepage is with Hugo
  • homepage had its git repo link changed to a different one with completely unrelated git history
  • experimented with netlify plugins on homepages, but not on blog

I think I found the solution. Running netlify build followed by DEBUG='*' netlify deploy (per the docs) resulted in far more verbose output. Finally.

The big change in feedback was a line

{
  ...
  "error_message": "undefined method `split' for nil:NilClass",
  ...
}

that eventually popped up. Given how late in the stage it was, my instinct told me it was an issue with my netlify.toml.

Given .split() and NilClass hint at a Ruby implementation, it seemed like there was an error in the TOML for something I expected should be an array. The only thing left that fit that description was:

[[headers]]
  [headers.values]
    X-Frame-Options = "DENY"
    X-XSS-Protection = "1; mode=block"

After commenting that out, I rebuilt and deployed successfully. :thinking:

1 Like