if (dc_phantom_stream && num_pipes > 0) {
                dc_phantom_stream_status = dml_ctx->config.callbacks.get_stream_status(context, dc_phantom_stream);
 
-               /* phantom plane will have same index as main */
-               dc_phantom_plane = dc_phantom_stream_status->plane_states[dc_plane_index];
+               if (dc_phantom_stream_status) {
+                       /* phantom plane will have same index as main */
+                       dc_phantom_plane = dc_phantom_stream_status->plane_states[dc_plane_index];
 
-               dml_ctx->config.callbacks.get_dpp_pipes_for_plane(dc_phantom_plane, &context->res_ctx, dc_phantom_pipes);
+                       if (dc_phantom_plane) {
+                               /* only care about phantom pipes if they contain the phantom plane */
+                               dml_ctx->config.callbacks.get_dpp_pipes_for_plane(dc_phantom_plane, &context->res_ctx, dc_phantom_pipes);
+                       }
+               }
        }
 
        return num_pipes;