My builds on https://github.com/rdela/rdela.com started failing all of a sudden with a gatsby-plugin-feed error, Config Validation with "title" is required:
ERROR #11321 PLUGIN
"gatsby-plugin-feed" threw an error while running the onPreBootstrap lifecycle:
[Config Validation]: "title" is required
Error: [Config Validation]: "title" is required
- gatsby-node.js:84 _callee$
[rdela.com]/[gatsby-plugin-feed]/gatsby-node.js:84:19
Here is the PR from Renovate that introduced this bug/error: https://github.com/rdela/rdela.com/pull/186
gatsby-plugin-feed | dependencies | patch | 2.3.7聽->聽2.3.9
By examining the link attached to 2.3.7聽->聽2.3.9 in the PR description:
https://renovatebot.com/package-diff?name=gatsby-plugin-feed&from=2.3.7&to=2.3.9
I was able to track down https://github.com/gatsbyjs/gatsby/pull/16814 where @eyalroth writes
Note that the plugin will now require a title to be configured for each feed, as per the documentation.
@sidharthachatterjee approved and merged the PR.
That bit in the readme was only added 5 months ago by @DSchau:
https://github.com/gatsbyjs/gatsby/commit/626cab461640bd6598806f3ec5b98e196f83dc9a
Dustin wrote at the time in the commit and PR description:
I propose that we make this a minor version bump for this plugin, once merged.
@secretfader and @pieh approved the changes and Michal merged the PR:
https://github.com/gatsbyjs/gatsby/pull/12085
I think it goes without saying that this is a breaking change, and would have been whether or not the docs had said this all along, but they didn't. I cannot see how there is any way this should have happened under a PATCH version.
Further, my RSS feed had a title the whole time anyway.

Here is my config at the time the breaking change was introduced:
https://github.com/rdela/rdela.com/blob/755f3c98ab727f647377941b84dcc35a5b020e29/gatsby-config.js#L110-L163
Please try to respect SemVer. I know how to track down errors like these, but I am sure there are people out there with broken builds scratching their heads who will not drop by to weigh in or raise their voice in the issues, even if they are able to fix their builds. Gatsby is difficult and complicated enough to use without surprise breakage like this.
I appreciate all of your hard work on Gatsby and that there were other bugs being fixed as these breaking changes were introduced. Yet none of those bugs effected me, but the breaking change in gatsby-plugin-feed 2.3.8 did. I am able to fix the build by adding the title field in my config, but I still do not understand why I should have to add redundant information that exists in siteMetadata in the same file to replicate the result I was already getting without it.
Please let me know if I have misunderstood something and if you spot any problems with my site, issues and PRs are very welcome, as always.
I saw this earlier on a usability study so it should definitely be reverted. Warn not error.
Also it sounds like the check could be wrong given Ricky had a title already.
Would it be reasonable to push another patch (2.3.10) that reverts these changes, and then push an actual major version bump (3.0.0) on this plugin?
Generally speaking people don't upgrade to major new versions so I'd rather not do it unless it's significant. A warning for title for now seems fine.
I created a PR to replace the requirement with a warning. Sorry for the inconvenience.
Thanks Eyal, I appreciate all your work on this, in #16814 and now #17107. I realize what a delicate balancing act trying to please all of the stakeholders is, and hope what I wrote in the issue description did not seem harsh. I apologize if it did.
I am still curious about what Kyle wrote above:
Also it sounds like the check could be wrong given Ricky had a title already.
Do you understand why my feed had a title all along? Was that the base query { site { siteMetadata { title }}} being merged into feed query that Dustin mentions in the comment added in this commit that was later removed here? (Side note: not sure Greg understood the purpose of demonstrating how to filter drafts out of the feed when he made the changes in https://github.com/gatsbyjs/gatsby/pull/13718. Also looks like the example was already using serialize so I'm altogether baffled by the PR description there.)
If the base query { site { siteMetadata { title }}} in options: { query } works to provide a title as in my old config, I am still confused why we need to warn about the title being missing in feeds. I get that the custom feed title override was not working, as you describe clearly in https://github.com/gatsbyjs/gatsby/issues/16177, but still unclear why we need to warn at all. Looks like in https://github.com/gatsbyjs/gatsby/issues/15595 cueblermm was querying siteTitle not title? Could it be we should document that is has to be queried as title in the base query for merging to work? Instead of warning when title is not present in feeds?
@rdela The issue description was on point, no need to apologize :)
To be honest I was too a little confused with the disparity between the documentation and the implementation of this plugin; the documentation declares that the title is required, but the implementation didn't enforce this requirement, didn't test it, and even made sure to handle the case of a missing title (along with tests for that case).
Yes, the feed basically borrows the site's title. If I'm not mistaken -- and I may very well be because I haven't looked too deep into this -- it does so in quite an awkward way by fetching the title with the default query and then injecting it into the feed with the default serialization.
Imagine someone wanting to override either the query or the serialization, so now they would have to make sure to include this functionality as well. I find this cumbersome. There is also the issue of coupling the plugin with a certain conventional metadata structure, which might lead to problems in the future (see https://github.com/GatsbyCentral/gatsby-v2-starter-lumen/pull/9/ for example).
Furthermore, when having multiple feeds (for different categories, languages, etc), it would be discouraged to have the same title for both feeds.
All in all I do believe that moving forward the title should be set explicitly, but obviously this should be done gradually and shouldn't break any build at the moment.
We went forward with putting title as required because it was written down in the readme. Seems like we were a bit too strongly about this.
I realize what a delicate balancing act trying to please all of the stakeholders is, and hope what I wrote in the issue description did not seem harsh. I apologize if it did.
I was among the first people to see this thread (before it accumulated any comments), and closed the tab immediately because the tone was overly combative and generally not the kind of messages I prefer to receive from folks benefiting from work I gave away for free. I'm glad the OP realized how their message was received, and accept the apology from above (provided that incidents like this don't become a theme).
I'm no longer maintaining any Gatsby plugins, as mentioned in PR #12085:
I've moved on to other projects and languages, and probably should have mentioned that in the past few months. I'm happy to keep reviewing PRs for this plugin if that's needed, but since I'm not actively using the plugin myself, it makes sense to find a more suitable maintainer.
Tagging me in case-by-case take-down of a months old release that I played only a minor role is a silly, pointless exercise that only sows discontent. I hope other community members will choose differently in the future, maybe even including a hint of gratitude. I know it's a lot to ask, but I can hope! (Edit: for what it's worth, I wouldn't have approved had I realized the features were slated to go out as a patch release. Still, this angry thread, posted months later, is out of line.)
Nicholas, thank you for your response and a giant thank you filled with gratitude for all of your work on open source, Gatsby-related or otherwise. I did not read the section in 12085 about you having stepped away from Gatsby and will refrain from tagging you from now on.
One of the difficulties in communicating over text is the inability to convey tone. I was initially slightly confused but never angry in the course of writing the issue or any responses, and I certainly did not mean it to be a take-down. My only thought in mentioning participants was to try to get everyone who might be able to make sense of the fragments I was able to piece together to have a conversation. To me, they illustrate how no one person could possibly bear responsibility because changes like these happen over the course of months and a complex web of many helpful, gracious contributions. In my mind the community is responsible for all of the code.
The constituent I try to keep in mind and speak up for whenever I can is the newcomer who feels out of place and overwhelmed by the complexity and inscrutable errors and roadblocks that are an everyday fact of life for developers. I want as many people like this not to get discouraged and drift away from open source because we need all of their unique perspectives. We have all been that person at one time.
My idea in assembling all of this research and campaigning for a solution was to save other people, including all of the contributors mentioned, the trouble of doing the same. Admittedly my focus was on someone encountering this error who did not understand it and was searching for background, apparently to the detriment of expressing my deep gratitude for all participants in the Gatsby ecosystem. My profound apologies to anyone past, present, or future who feels at all alienated or offended by any of my activity in the Gatsby community on GitHub.
All in all I do believe that moving forward the title should be set explicitly, but obviously this should be done gradually and shouldn't break any build at the moment.
@eyalroth: Great sounds like warning is the way to go then, and then making title required in next major version (3.0.0), thanks again.
This broke for me too.
Pegging version to older fixed for me https://github.com/DavidWells/davidwells.io/commit/b2121b2afba715f646d6733a4b4ea3385dc7528b
I had some trouble tracking down where I was suppose to put the extra title info. In case anyone reading this is as dense as me, it is in gatsby-config.js => plugins => resolve:gatsby-plugin-feed at bottom of feeds, after output.xml:
plugins: [
...,
{
resolve: 'gatsby-plugin-feed',...
feeds: [{
output: '/rss.xml',
title: siteConfig.title // fix for issue @https://github.com/gatsbyjs/gatsby/issues/17100
}]
_tl;dr_ Fix published in [email protected] thanks to @eyalroth
Apologies for the trouble that this caused, everyone. title was documented as a required field (5 months ago as Ricky pointed out) so we (perhaps _naively_ in retrospect) agreed that it was reasonable to enforce this.
Please try to respect SemVer. I know how to track down errors like these, but I am sure there are people out there with broken builds scratching their heads who will not drop by to weigh in or raise their voice in the issues, even if they are able to fix their builds. Gatsby is difficult and complicated enough to use without surprise breakage like this.
@rdela Absolutely! We are typically very careful when it comes to semver and _do_ commit to respecting it 馃挴 We appreciate your detailed investigation and empathy towards users who might not be equipped to do the same 馃挏
Most helpful comment
I created a PR to replace the requirement with a warning. Sorry for the inconvenience.