diff --git a/res/res_pjsip_refer.c b/res/res_pjsip_refer.c
index 20e3012b13e0baa2ab5b2070fa4e14ff36725ead..efcee67a2e71a55929abddfab4d02866ed31cb29 100644
--- a/res/res_pjsip_refer.c
+++ b/res/res_pjsip_refer.c
@@ -691,11 +691,16 @@ static int refer_incoming_attended_request(struct ast_sip_session *session, pjsi
 static int refer_incoming_blind_request(struct ast_sip_session *session, pjsip_rx_data *rdata, pjsip_sip_uri *target,
 	struct refer_progress *progress)
 {
-	const char *context = (session->channel ? pbx_builtin_getvar_helper(session->channel, "TRANSFER_CONTEXT") : "");
+	const char *context;
 	char exten[AST_MAX_EXTENSION];
 	struct refer_blind refer = { 0, };
 
+	if (!session->channel) {
+		return 404;
+	}
+
 	/* If no explicit transfer context has been provided use their configured context */
+	context = pbx_builtin_getvar_helper(session->channel, "TRANSFER_CONTEXT");
 	if (ast_strlen_zero(context)) {
 		context = session->endpoint->context;
 	}