2 files changed, 7 insertions, 2 deletions
diff --git a/changelog.d/4450.bugfix b/changelog.d/4450.bugfix
new file mode 100644
index 0000000000..b194e94c15
--- /dev/null
+++ b/changelog.d/4450.bugfix
@@ -0,0 +1,2 @@
+The dependency checker now correctly reports a version mismatch for optional
+dependencies, instead of reporting the dependency missing.
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index 5d087ee26b..590ee59907 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -143,9 +143,12 @@ def check_requirements(for_feature=None, _get_distribution=get_distribution):
for dependency in OPTS:
try:
_get_distribution(dependency)
- except VersionConflict:
+ except VersionConflict as e:
deps_needed.append(dependency)
- errors.append("Needed %s but it was not installed" % (dependency,))
+ errors.append(
+ "Needed optional %s, got %s==%s"
+ % (dependency, e.dist.project_name, e.dist.version)
+ )
except DistributionNotFound:
# If it's not found, we don't care
pass
|