Hello Tom, Many thanks and that is very helpful indeed - and I have learned something new regarding the exception stack and stack trace. Good to know that the salient piece (for me) is at the end of these.
OK, I reckon this is the skin.conf or weewx.conf file, so will go and have a look. Thank you again and I'll let you know... Nick. On Monday, February 16, 2026 at 9:54:53 PM UTC Tom Keffer wrote: > What you are looking at is an exception stack. The actual error is the > last entry "Duplicate section name." The entries above it are the stack > trace: which function called which function which ended up causing the > error. They are useful for figuring out how the software got into its > predicament, but for the moment you can ignore them. You just need to focus > on the last item, the duplicate section name error. > > The duplicate section name is in the *configuration file*, not the > function reading it. Belchertown has its own way of doing things, but one > of your configuration files, probably the one you last edited, has a > duplicate section name at line 350. This means it looks something like: > > [SomeEntry] > [[SubEntry]] > ... > [[SubEntry]] > > Note how "SubEntry" appears twice. For a configuration file, it can only > appear once. > > By convention, configuration files end in the suffix ".conf". Check line > 350 of all of them. You'll find the culprit. > > Hope this helps. > > -tk > > On Mon, Feb 16, 2026 at 1:40 PM O S <[email protected]> wrote: > >> Many thanks and is there any chance that you would be able to offer >> something a little less cryptic? Perhaps you'd explain how you arrived at >> the conclusion you did and how I might go about fixing it? >> >> This group is where you have directed me to more than once when I have >> posted on the wxforum, saying that if I *"... want quality help the best >> place to ask is in the place where the thousands of users and the sw devs >> hang out, which is in the google group for this particular piece of >> software." *So, here I am. >> >> The error output that I posted above appears to the untrained eye to have >> lots of errors, but you have only highlighted the last one, so I wonder why >> this is and what those other messages mean*.* I have navigated to >> /usr/lib/python3/dist-packages/configobj and executed: sudo nano -l >> __init.py and I find this at line 350: >> >> # Back in interpolate(), all we have to do is kick off the >> recursive >> >> It appears to exist only once. >> >> So, as it turns out, not really that obvious at all, unless you know >> markedly more than I do, which it appears that you do, and which makes me >> wonder why you'd not be a little more forthcoming with some assistance. >> >> Not trying to be obtuse here, just a genuine question and i apologise if >> what appear to be basic questions irritate you. >> >> Thanks, >> Nick. >> >> On Sunday, February 15, 2026 at 10:21:00 PM UTC Vince Skahan wrote: >> >>> > configobj.DuplicateError: Duplicate section name at line 350 >>> >>> Doesn't get much more obvious than this one.... >>> >>> On Sunday, February 15, 2026 at 2:05:41 PM UTC-8 O S wrote: >>> >>>> Hello all, >>>> >>>> i have been experimenting with adding new observations and graphs today >>>> and everything has worked as expected. I just noticed that the Belchertown >>>> skin is not updating so I ran a report manually and I'm getting the errors >>>> below - I have no idea why, Can anyone help? >>>> >>>> The Seasons skin is still working fine. The only other thing i did >>>> today was to set up a few scripts and cron jobs to make hourly, weekly, >>>> monthly backups using rsync. >>>> >>>> Thanks, >>>> Nick. >>>> >>>> Using configuration file /etc/weewx/weewx.conf >>>> All enabled reports will be run. >>>> Generating as of last timestamp in the database. >>>> Traceback (most recent call last): >>>> File “/usr/share/weewx/weewx/reportengine.py”, line 248, in run >>>> obj.start() >>>> File “/usr/share/weewx/weewx/reportengine.py”, line 465, in start >>>> self.run() >>>> File “/usr/share/weewx/weewx/cheetahgenerator.py”, line 166, in run >>>> ngen = self.generate(gen >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> *dict[sectionname], sectionname, self.gents) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/share/weewx/weewx/cheetahgenerator.py”, line 226, in generate ngen >>>> += >>>> self.generate(section[subsection], subsection, gents) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/share/weewx/weewx/cheetahgenerator.py”, line 226, in generate ngen >>>> += >>>> self.generate(section[subsection], subsection, gents) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/share/weewx/weewx/cheetahgenerator.py”, line 309, in generate >>>> searchList = self.getSearchList(encoding, timespan, >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/share/weewx/weewx/cheetahgenerator.py”, line 401, in getSearchList >>>> searchlist += obj.getextensionlist(timespan, dblookup) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/etc/weewx/bin/user/belchertown.py”, line 403, in get_extension_list >>>> chart_dict = configobj.ConfigObj(chart_config_path, file_error=True) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/lib/python3/dist-packages/configobj/__init.py”, line 1229, in __init >>>> self._load(infile, configspec) File >>>> “/usr/lib/python3/dist-packages/configobj/__init.py”, line 1318, in _load >>>> raise errorconfigobj.DuplicateError: Duplicate section name at line >>>> 350.Traceback (most recent call last): File >>>> “/usr/share/weewx/weewx/reportengine.py”, line 248, in run obj.start() >>>> File >>>> “/usr/share/weewx/weewx/reportengine.py”, line 465, in start self.run() >>>> File “/etc/weewx/bin/user/belchertown.py”, line 2308, in run >>>> self.chart_dict = configobj.ConfigObj(chart_config_path, file_error=True) >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File >>>> “/usr/lib/python3/dist-packages/configobj/__init.py”, line 1229, in __init >>>> self._load(infile, configspec) File >>>> “/usr/lib/python3/dist-packages/configobj/__init*.py”, line 1318, in >>>> _load >>>> raise error >>>> configobj.DuplicateError: Duplicate section name at line 350 >>>> >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "weewx-user" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion visit >> https://groups.google.com/d/msgid/weewx-user/c65cf470-cd04-4833-af03-78a23addf88fn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/c65cf470-cd04-4833-af03-78a23addf88fn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/7decb59e-7770-4394-8bde-0d8abb0e73a6n%40googlegroups.com.
