Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Fix error message when app_service_config_files validation fails #15614

Merged
merged 2 commits into from
May 18, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fix error message when app_service_config_files validation fails
The second argument of `ConfigError` is a path, passed as an optional
`Iterable[str]` and not a `str`. If a string is passed directly,
Synapse unhelpfully emits "Error in configuration at
'a.p.p._.s.e.r.v.i.c.e._.c.o.n.f.i.g._.f.i.l.e.s'" when the config
option has the wrong data type.

Signed-off-by: Sean Quah <[email protected]>
  • Loading branch information
Sean Quah committed May 17, 2023
commit f3ada853b028c0f38cf97c8c85f72c1b641af7d2
3 changes: 1 addition & 2 deletions synapse/config/appservice.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,10 @@ def read_config(self, config: JsonDict, **kwargs: Any) -> None:
if not isinstance(self.app_service_config_files, list) or not all(
type(x) is str for x in self.app_service_config_files
):
# type-ignore: this function gets arbitrary json value; we do use this path.
raise ConfigError(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we update ConfigError to take StrCollection to avoid this in the future?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see you answered this while I typed this out...

But for cross-referencing, see #14809

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've ended up getting distracted and doing it anyway. I'll file it as a separate PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #15615.

"Expected '%s' to be a list of AS config files:"
% (self.app_service_config_files),
"app_service_config_files",
("app_service_config_files",),
)

self.track_appservice_user_ips = config.get("track_appservice_user_ips", False)
Expand Down