Error: Referenced option does not exist: buildout user

Hi, I recently updated my plone install from 5.0.6 to 5.0.7. Today I was working to solve an issue with getting a new version of an add on when I found I can't even run buildout. I've tried a few things but still get the error shown below. Googling hasn't helped give me a successful direction.

The last thing I did on the server was to generate and set up an SSH key in an attempt to download the newest version of an Add on product from GitHub. Don't see how this error would related, however. I've used buildout for years and don't ever remember having this problem. I'd appreciate any help

me@server:/usr/local/Plone/zeocluster$ sudo -u plone_buildout bin/buildout -n
 While:
   Installing.
   Getting section client1.
   Initializing section client1.
   Getting option client1:user.
 Error: Referenced option does not exist: buildout user

The error message is verbose and self-explaining...so check why your configuration no longer provides buildout:user...if it is not present, add it...why it changed? You updated something so likely you messed it up. If you do not believe it: compare the configuration old against the current one in case you have a backup.

-aj

Thanks for the pointer, @zopyx. Would you be more explicit about which files contain this "configuration"? I've already checked around but bo luck. If I know where to look I can check my back ups.

Your installation, your configuration...how should I know your configuration looks like? Look at your *.cfg files and check which files provides the buildout section.

-aj

There are two options here. One, your configuration file, or one that it extends has changed and removed the user option from the buildout section. Two, your configuration file, or one that it extends, has changed and added a reference to the user option in some section. You'll need to figure out which, and fix the problem in the appropriate way.

Buildout configuration options are generally contained in .cfg files like buildout.cfg or versions.cfg. Configuration files are organized into sections (prefaced with a word naming the section in square brackets: [instance] or [buildout]). Within each section, options are provided in a series of key-value pairs: allow-picked-versions = false, user = jane.

Somewhere in your buildout configuration files, you are referencing the user option from the [buildout] section. But that option is no longer set in that section. You'll need to add it.

When you run bin/buildout the buildout executable tries to find a file called buildout.cfg and uses that as the default configuration (unless you pass a specific file with the -c command line option, but your command line does not show that). The [buildout] section is generally the first section in any configuration file, so start in buildout.cfg and check for [buildout] section options. Remember that configuration files can extend other configuration files, so you want to look for the extends option in the [buildout] section to figure out other files that might have changed, removing the user option (or introducing its use in some other section).

2 Likes

Thanks @cewing for such a clear, organized, detailed and comprehensive explanation! While I knew some of the info already, your explanation integrated what I already knew with parts that I didn't, and helped me understand some larger frameworks into which buildout, fits. With this I knew where and why to look! I strongly encourage you to copy your description/explanation into a page that explains buildout on the Plone doc site. Many others could benefit from it as well. And thanks @zopyx for the tip on comparing the non-working buildout to a previous buildout.

I found the line on the non-working buildout, it was:
#user=
I had seen it before but also saw other "user" definitions (e.g. for buildout-user) and didn't remember if it had said something different. However upon making the comparison and seeing this line stick out, I remembered that I had deleted the user:password from this line. Anyway, it's all fixed and thanks so much for helping me find it, and thanks Chris for teaching me more about Plone.

1 Like