diff --git a/lib/api.js b/lib/api.js
index 040b477..667ef37 100644
--- a/lib/api.js
+++ b/lib/api.js
@@ -88,8 +88,8 @@ async function send_this(data) {
 		options['body'] = JSON.stringify(data.request.payload);
 	}
 	fs.writeFileSync('log', JSON.stringify({event: 'send', date: new Date(), data: data}) + '\n', {flag: 'a+'});
-	let response = await fetch(`https://api.spacetraders.io/v2${data.request.endpoint}`, options);
 	try {
+		let response = await fetch(`https://api.spacetraders.io/v2${data.request.endpoint}`, options);
 		response = await response.json();
 		switch(response.error?.code) {
 			//case 401: // TODO 401 means a server reset happened
diff --git a/lib/ships.js b/lib/ships.js
index 1e92cf3..12cbd7d 100644
--- a/lib/ships.js
+++ b/lib/ships.js
@@ -15,7 +15,7 @@ export async function extract(ctx) {
 		switch(response.error.code) {
 		case 4000: // ship is on cooldown
 			await api.sleep(response.error.data.cooldown.remainingSeconds  * 1000);
-			return extract(ctx);
+			return await extract(ctx);
 		case 4228: // ship is full
 			return null;
 		default: // yet unhandled error
@@ -38,7 +38,7 @@ export async function dock(ctx) {
 		switch(response.error.code) {
 		case 4214: // ship is in transit
 			await api.sleep(response.error.data.secondsToArrival  * 1000);
-			return dock(ctx);
+			return await dock(ctx);
 		default: // yet unhandled error
 			throw response;
 		}
@@ -66,7 +66,7 @@ export async function navigate(ctx) {
 		switch(response.error.code) {
 		case 4214: // ship is in transit
 			await api.sleep(response.error.data.secondsToArrival  * 1000);
-			return navigate(ctx);
+			return await navigate(ctx);
 		default: // yet unhandled error
 			throw response;
 		}
@@ -96,7 +96,7 @@ export async function orbit(ctx) {
 		switch(response.error.code) {
 		case 4214: // ship is in transit
 			await api.sleep(response.error.data.secondsToArrival  * 1000);
-			return orbit(ctx);
+			return await orbit(ctx);
 		default: // yet unhandled error
 			throw response;
 		}