WP_Query fails despite having 1 post

T a look at how to properly construct a query with WP_Query.

   $args = array(
   'post_type' => 'cameras',
   'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

You should go and have a look at how you registered your post_type. Apart from that, how are you using your query on your page. Do have one query, or multiple queries. If you have have multiple queries, you can have problems with your query. Also, as said before, check your post_status of your post.

If you need to cal only one particular post, you can just do the following, not necessary to use the other statements for post type

$args = array(
       'p' => 2943,
    );
    $the_query = new WP_Query( $args );

At this stage it is impossible to pin point a problem. Just a tip, flush your permalinks again