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/CAPq0zEDoZVj%3DUfN8%3DDEJ%3DzxXuQ_AxgJxdSymQb8fGdr5pq8oRQ%40mail.gmail.com.