Error: Process name can only include letters, numbers, and hyphens

I’ve come across a new error while attempting to push a new build:

--> Pushing image done
image: registry.fly.io/[REDACTED]
image size: 1.5 GB
==> Creating release
Error Processes [1] Name Process name can only include letters, numbers, and hyphens


Error: Process completed with exit code 1.
##[debug]Finishing: Run flyctl deploy --remote-only --build-arg RAILS_MASTER_KEY=$RAILS_MASTER_KEY

Strangely this occurs when simply updating a Ruby gem and the only file that changed was Gemfile.lock.

The app uses buildpacks:

[build]
  builder = "heroku/buildpacks:20"
  buildpacks = ["fagiani/apt", "heroku/ruby"]

I’m wondering if it’s referencing the Procfile (if from a buildpack) or [processes] in fly.toml (if from Fly). In any case, the processes (3) match and haven’t been changed:

fly.toml:

[processes]
  app = "bundle exec puma -C config/puma.rb"
  high_priority_worker = "bundle exec sidekiq -C config/sidekiq_high_priority.yml"
  low_priority_worker = "bundle exec sidekiq -C config/sidekiq_low_priority.yml"

Procfile:

web: bundle exec puma -C config/puma.rb
high_priority_worker: bundle exec sidekiq -C config/sidekiq_high_priority.yml
low_priority_worker: bundle exec sidekiq -C config/sidekiq_low_priority.yml

My question is, is this output coming from a buildpack or is it specific to Fly.io?

Perhaps related to Processes defined by empty string are broken (again!) - #4 by Yaeger

This likely has to do with the naming of your process, which contains underscores. Try, high-priority-worker and low-priority-worker instead of high_priority_worker and low_priority_worker

1 Like

Are you referring to the Procfile, fly.toml or both? I’m not super familiar with TOML, would those keys then need to be quoted (looking at TOML: English v1.0.0-rc.3)?

I looked over your post there but in my app specifically I’m not relying on the empty strings. But I see what you’re saying (that it could be the same core issue).

Well it wasn’t the Procfile. I thought it might be it since I realized I did recently delete it then restore it. But I can confirm the same error appears with the following Procfile:

web: bundle exec puma -C config/puma.rb
high-priority-worker: bundle exec sidekiq -C config/sidekiq_high_priority.yml
low-priority-worker: bundle exec sidekiq -C config/sidekiq_low_priority.yml

Hey! Could you give this another shot and let us know how it goes? This should fixed up now.

1 Like

Yes, it appears to work nicely now with the modified Procfile. I am going to go ahead and test it out with the old Procfile (using underscored keys) and if it doesn’t work, I’ll go back to hyphenated keys.

1 Like

The old Procfile using underscores in the key names works as well.

1 Like