diff --git a/virl/cli/pull/commands.py b/virl/cli/pull/commands.py
index debc4c6..99c5423 100644
--- a/virl/cli/pull/commands.py
+++ b/virl/cli/pull/commands.py
@@ -12,7 +12,10 @@ def pull(repo, **kwargs):
     url = "https://raw.githubusercontent.com/"
     url = url + "{}/master/topology.virl".format(repo)
     resp = requests.get(url)
-
-    with open('topology.virl', 'w') as fh:
-        fh.write(resp.text)
-    click.secho("Saved topology as topology.virl", fg="green")
+    if resp.ok:
+        with open('topology.virl', 'w') as fh:
+            fh.write(resp.text)
+        click.secho("Saved topology as topology.virl", fg="green")
+    else:
+        click.secho("Error pulling {} - repo not found".format(repo),
+                    fg="red")

diff --git a/tests/pull.py b/tests/pull.py
index 05c8204..2f060be 100644
--- a/tests/pull.py
+++ b/tests/pull.py
@@ -17,3 +17,16 @@ class Tests(BaseTest):
             runner = CliRunner()
             result = runner.invoke(virl, ["pull", "foo/bar"])
             self.assertEqual(0, result.exit_code)
+
+    def test_virl_pull_invalid_repo(self):
+        with requests_mock.mock() as m:
+            # Mock the request to return what we expect from the API.
+
+            topo_url = 'https://raw.githubusercontent.com/'
+            topo_url += 'doesnt/exist/master/topology.virl'
+            m.get(topo_url, status_code=400)
+            runner = CliRunner()
+            result = runner.invoke(virl, ["pull", "doesnt/exist"])
+            expected = "Pulling from doesnt/exist\nError pulling " \
+                       "doesnt/exist - repo not found\n"
+            self.assertEqual(result.output, expected)

need error handling on `virl pull`
## Example

This workflow should provide an error back to the user

```
[root@localhost test2]# virl pull foo
Pulling from foo
Saved topology as topology.virl
You have new mail in /var/spool/mail/root
[root@localhost test2]# cat topology.virl 
400: Invalid request
```
tests/pull.py::Tests::test_virl_pull_invalid_repo
tests/pull.py::Tests::test_virl_pull