Software error: ValueError

ValueError: list.remove(x): x not in list

Traceback (most recent call last)

  • File "/usr/lib/python3/dist-packages/flask/app.py", line 2529, in wsgi_app

            ctx = self.request_context(environ)
            error: t.Optional[BaseException] = None
            try:
                try:
                    ctx.push()
                    response = self.full_dispatch_request()
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                except Exception as e:
                    error = e
                    response = self.handle_exception(e)
                except:  # noqa: B001
                    error = sys.exc_info()[1]
  • File "/usr/lib/python3/dist-packages/flask/app.py", line 1825, in full_dispatch_request

                request_started.send(self)
                rv = self.preprocess_request()
                if rv is None:
                    rv = self.dispatch_request()
            except Exception as e:
                rv = self.handle_user_exception(e)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            return self.finalize_request(rv)
     
        def finalize_request(
            self,
            rv: t.Union[ft.ResponseReturnValue, HTTPException],
  • File "/usr/lib/python3/dist-packages/flask/app.py", line 1823, in full_dispatch_request

     
            try:
                request_started.send(self)
                rv = self.preprocess_request()
                if rv is None:
                    rv = self.dispatch_request()
                         ^^^^^^^^^^^^^^^^^^^^^^^
            except Exception as e:
                rv = self.handle_user_exception(e)
            return self.finalize_request(rv)
     
        def finalize_request(
  • File "/usr/lib/python3/dist-packages/flask/app.py", line 1799, in dispatch_request

                and req.method == "OPTIONS"
            ):
                return self.make_default_options_response()
            # otherwise dispatch to the handler for that endpoint
            view_args: t.Dict[str, t.Any] = req.view_args  # type: ignore[assignment]
            return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
        def full_dispatch_request(self) -> Response:
            """Dispatches the request and on top of that performs request
            pre and postprocessing as well as HTTP exception catching and
            error handling.
  • File "/srv/osm-wikidata/matcher/view.py", line 659, in switch_languages

    def switch_languages(osm_type, osm_id):
        place = Place.get_or_abort(osm_type, osm_id)
     
        top = request.args.get("top")
        if top:
            return set_top_language(place, top)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
        languages = place.languages()
        for l in languages:
            l["lang"] = get_wikidata_language(l["code"])
     
  • File "/srv/osm-wikidata/matcher/view.py", line 644, in set_top_language

        cookie_name = "language_order"
        place_identifier = f"{place.osm_type}/{place.osm_id}"
     
        cookie = read_language_order()
        current_order = cookie.get(place_identifier) or [l["code"] for l in languages]
        current_order.remove(top)
        ^^^^^^^^^^^^^^^^^^^^^^^^^
        cookie[place_identifier] = [top] + current_order
     
        flash("language order updated")
        response = make_response(redirect(place.candidates_url()))
        response.set_cookie(cookie_name, json.dumps(cookie), samesite="Strict")
ValueError: list.remove(x): x not in list

Error in function "set_top_language": Arguments(args=['place', 'top'], varargs=None, varkw=None)

{'cookie': {},
 'cookie_name': 'language_order',
 'current_order': ['es', 'en', 'fr', 'ca', 'de', 'nl', 'pt', 'it'],
 'languages': [{'code': 'es', 'osm': 204, 'wikidata': 5594},
               {'code': 'en', 'osm': 169, 'wikidata': 5066},
               {'code': 'fr', 'osm': 90, 'wikidata': 1407},
               {'code': 'ca', 'osm': 72, 'wikidata': 1084},
               {'code': 'de', 'osm': 116, 'wikidata': 1053},
               {'code': 'nl', 'osm': 2, 'wikidata': 987},
               {'code': 'pt', 'osm': 65, 'wikidata': 899},
               {'code': 'it', 'osm': 52, 'wikidata': 881}],
 'place': <matcher.place.Place object at 0x7fc251ed4850>,
 'place_identifier': 'relation/5326784',
 'top': 'eo'}