We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Improve msg error for submodules with invalid url schemas
We only support `http` schemas, but the error message isn't clear about that. Here is a good suggestion: https://github.com/readthedocs/readthedocs.org/issues/5928#issuecomment-511708197

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `readthedocs/projects/exceptions.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 """Project exceptions."""
4 
5 from django.conf import settings
6 from django.utils.translation import ugettext_noop as _
7 
8 from readthedocs.doc_builder.exceptions import BuildEnvironmentError
9 
10 
11 class ProjectConfigurationError(BuildEnvironmentError):
12 
13     """Error raised trying to configure a project for build."""
14 
15     NOT_FOUND = _(
16         'A configuration file was not found. '
17         'Make sure you have a conf.py file in your repository.',
18     )
19 
20     MULTIPLE_CONF_FILES = _(
21         'We found more than one conf.py and are not sure which one to use. '
22         'Please, specify the correct file under the Advanced settings tab '
23         "in the project's Admin.",
24     )
25 
26 
27 class RepositoryError(BuildEnvironmentError):
28 
29     """Failure during repository operation."""
30 
31     PRIVATE_ALLOWED = _(
32         'There was a problem connecting to your repository, '
33         'ensure that your repository URL is correct.',
34     )
35     PRIVATE_NOT_ALLOWED = _(
36         'There was a problem connecting to your repository, '
37         'ensure that your repository URL is correct and your repository is public. '
38         'Private repositories are not supported.',
39     )
40 
41     INVALID_SUBMODULES = _('One or more submodule URLs are not valid: {}.')
42     INVALID_SUBMODULES_PATH = _(
43         'One or more submodule paths are not valid. '
44         'Check that all your submodules in .gitmodules are used.'
45     )
46 
47     DUPLICATED_RESERVED_VERSIONS = _(
48         'You can not have two versions with the name latest or stable.',
49     )
50 
51     FAILED_TO_CHECKOUT = _('Failed to checkout revision: {}')
52 
53     def get_default_message(self):
54         if settings.ALLOW_PRIVATE_REPOS:
55             return self.PRIVATE_ALLOWED
56         return self.PRIVATE_NOT_ALLOWED
57 
58 
59 class ProjectSpamError(Exception):
60 
61     """
62     Error raised when a project field has detected spam.
63 
64     This error is not raised to users, we use this for banning users in the
65     background.
66     """
67
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/readthedocs/projects/exceptions.py b/readthedocs/projects/exceptions.py
--- a/readthedocs/projects/exceptions.py
+++ b/readthedocs/projects/exceptions.py
@@ -38,7 +38,10 @@
         'Private repositories are not supported.',
     )
 
-    INVALID_SUBMODULES = _('One or more submodule URLs are not valid: {}.')
+    INVALID_SUBMODULES = _(
+        'One or more submodule URLs are not valid: {}, '
+        'git/ssh URL schemas for submodules are not supported.'
+    )
     INVALID_SUBMODULES_PATH = _(
         'One or more submodule paths are not valid. '
         'Check that all your submodules in .gitmodules are used.'

{"golden_diff": "diff --git a/readthedocs/projects/exceptions.py b/readthedocs/projects/exceptions.py\n--- a/readthedocs/projects/exceptions.py\n+++ b/readthedocs/projects/exceptions.py\n@@ -38,7 +38,10 @@\n         'Private repositories are not supported.',\n     )\n \n-    INVALID_SUBMODULES = _('One or more submodule URLs are not valid: {}.')\n+    INVALID_SUBMODULES = _(\n+        'One or more submodule URLs are not valid: {}, '\n+        'git/ssh URL schemas for submodules are not supported.'\n+    )\n     INVALID_SUBMODULES_PATH = _(\n         'One or more submodule paths are not valid. '\n         'Check that all your submodules in .gitmodules are used.'\n", "issue": "Improve msg error for submodules with invalid url schemas\nWe only support `http` schemas, but the error message isn't clear about that. Here is a good suggestion: https://github.com/readthedocs/readthedocs.org/issues/5928#issuecomment-511708197\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n\"\"\"Project exceptions.\"\"\"\n\nfrom django.conf import settings\nfrom django.utils.translation import ugettext_noop as _\n\nfrom readthedocs.doc_builder.exceptions import BuildEnvironmentError\n\n\nclass ProjectConfigurationError(BuildEnvironmentError):\n\n    \"\"\"Error raised trying to configure a project for build.\"\"\"\n\n    NOT_FOUND = _(\n        'A configuration file was not found. '\n        'Make sure you have a conf.py file in your repository.',\n    )\n\n    MULTIPLE_CONF_FILES = _(\n        'We found more than one conf.py and are not sure which one to use. '\n        'Please, specify the correct file under the Advanced settings tab '\n        \"in the project's Admin.\",\n    )\n\n\nclass RepositoryError(BuildEnvironmentError):\n\n    \"\"\"Failure during repository operation.\"\"\"\n\n    PRIVATE_ALLOWED = _(\n        'There was a problem connecting to your repository, '\n        'ensure that your repository URL is correct.',\n    )\n    PRIVATE_NOT_ALLOWED = _(\n        'There was a problem connecting to your repository, '\n        'ensure that your repository URL is correct and your repository is public. '\n        'Private repositories are not supported.',\n    )\n\n    INVALID_SUBMODULES = _('One or more submodule URLs are not valid: {}.')\n    INVALID_SUBMODULES_PATH = _(\n        'One or more submodule paths are not valid. '\n        'Check that all your submodules in .gitmodules are used.'\n    )\n\n    DUPLICATED_RESERVED_VERSIONS = _(\n        'You can not have two versions with the name latest or stable.',\n    )\n\n    FAILED_TO_CHECKOUT = _('Failed to checkout revision: {}')\n\n    def get_default_message(self):\n        if settings.ALLOW_PRIVATE_REPOS:\n            return self.PRIVATE_ALLOWED\n        return self.PRIVATE_NOT_ALLOWED\n\n\nclass ProjectSpamError(Exception):\n\n    \"\"\"\n    Error raised when a project field has detected spam.\n\n    This error is not raised to users, we use this for banning users in the\n    background.\n    \"\"\"\n", "path": "readthedocs/projects/exceptions.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n\"\"\"Project exceptions.\"\"\"\n\nfrom django.conf import settings\nfrom django.utils.translation import ugettext_noop as _\n\nfrom readthedocs.doc_builder.exceptions import BuildEnvironmentError\n\n\nclass ProjectConfigurationError(BuildEnvironmentError):\n\n    \"\"\"Error raised trying to configure a project for build.\"\"\"\n\n    NOT_FOUND = _(\n        'A configuration file was not found. '\n        'Make sure you have a conf.py file in your repository.',\n    )\n\n    MULTIPLE_CONF_FILES = _(\n        'We found more than one conf.py and are not sure which one to use. '\n        'Please, specify the correct file under the Advanced settings tab '\n        \"in the project's Admin.\",\n    )\n\n\nclass RepositoryError(BuildEnvironmentError):\n\n    \"\"\"Failure during repository operation.\"\"\"\n\n    PRIVATE_ALLOWED = _(\n        'There was a problem connecting to your repository, '\n        'ensure that your repository URL is correct.',\n    )\n    PRIVATE_NOT_ALLOWED = _(\n        'There was a problem connecting to your repository, '\n        'ensure that your repository URL is correct and your repository is public. '\n        'Private repositories are not supported.',\n    )\n\n    INVALID_SUBMODULES = _(\n        'One or more submodule URLs are not valid: {}, '\n        'git/ssh URL schemas for submodules are not supported.'\n    )\n    INVALID_SUBMODULES_PATH = _(\n        'One or more submodule paths are not valid. '\n        'Check that all your submodules in .gitmodules are used.'\n    )\n\n    DUPLICATED_RESERVED_VERSIONS = _(\n        'You can not have two versions with the name latest or stable.',\n    )\n\n    FAILED_TO_CHECKOUT = _('Failed to checkout revision: {}')\n\n    def get_default_message(self):\n        if settings.ALLOW_PRIVATE_REPOS:\n            return self.PRIVATE_ALLOWED\n        return self.PRIVATE_NOT_ALLOWED\n\n\nclass ProjectSpamError(Exception):\n\n    \"\"\"\n    Error raised when a project field has detected spam.\n\n    This error is not raised to users, we use this for banning users in the\n    background.\n    \"\"\"\n", "path": "readthedocs/projects/exceptions.py"}]}