Description
I'm having major problems trying to build a Gatsby / WooCommerce site - whenever wp-graphql-woocommerce is activated it simply will not process any media items, with this error:
--
gatsby-source-wordpress Error category: undefined
Error:
Internal server error
Debug message:
in_array(): Argument #2 ($haystack) must be of type array, string given
Error path: mediaItems
info gatsby-source-wordpress GraphQL vars: {"first":100,"url":"http://178.62.90.26/graphql","in":["13"],"after":null}
--
Steps to reproduce
Steps to reproduce:
I have created a completely fresh install of Wordpress (v6+) on a php8+ environment (Digital Ocean Wordpress 1 click install image)
https://marketplace.digitalocean.com/apps/wordpress
I open the console and finish the wordpress installation process
Next I install wp-graphql (latest master version) and run composer install in the directory, then activate the plugin
Next I install WooCommerce, run through the installation process and create a dummy product
Then I install WP-Gatsby (v2.3.3) and activate.
Next I install the latest version of wp-graphql-woocommerce (v12 master), upload the plugin and activate
I then change the permalink structure and check that the /graphql route is working - everything is fine
At this point I have a single dummy product, a single Hello World post with a featured image attached, and I have only the following plugins installed on the site:
WooCommerce (v7.2.2)
WP Gatsby (v2.3.3)
WP GraphQL (v1.13.7)
WPGraphQL WooCommerce (WooGraphQL) (v0.12.0)
I then clone this simple blog repo:
https://github.com/gatsbyjs/gatsby-starter-wordpress-blog.git
I run yarn install for dependencies.
I change my gatsby-config to point toward my server and add an option in gatsby-source-wordpress to ignore ShippingMethod (or else it takes forever to build), and add some debugging in to help define the issue:
--
resolve: 'gatsby-source-wordpress',
options: {
url: process.env.WPGRAPHQL_URL || 'http://178.62.90.26/graphql',
type: {
ShippingMethod: {
exclude: true
},
},
debug: {
graphql: {
showQueryVarsOnError: true,
showQueryOnError: true,
onlyReportCriticalErrors: false,
},
},
},
--
I then add define( 'GRAPHQL_DEBUG', true ); to my wp-config.php and restart Apache just to be sure
I then run gatsby develop and get the error I mentioned earlier when it gets to MediaItems:
--
gatsby-source-wordpress Error category: undefined
Error:
Internal server error
Debug message:
in_array(): Argument #2 ($haystack) must be of type array, string given
Error path: mediaItems
info gatsby-source-wordpress GraphQL vars: {"first":100,"url":"http://178.62.90.26/graphql","in":["13"],"after":null}
--
And it creates 0 MediaItem nodes:
no MediaItems processed
And in my debug.log it’s just this over and over again:
--
[05-Jan-2023 10:21:40 UTC] PHP Deprecated: Function WPGraphQL\Connection\TermObjects::get_connection_args is <strong>deprecated</strong> since version 1.13.0! Use \WPGraphQL\Type\Connection\TermObjects::get_connection_args instead. in /var/www/html/wp-includes/functions.php on line 5379
[05-Jan-2023 10:21:40 UTC] PHP Deprecated: Function WPGraphQL\Connection\Comments::get_connection_config is <strong>deprecated</strong> since version 1.13.0! Use \WPGraphQL\Type\Connection\Comments::get_connection_config instead. in /var/www/html/wp-includes/functions.php on line 5379
--
If I deactivate wp-graphql-woocommerce the image is processed absolutely fine and creates the one mediaItem node that I have:
MediaItems processed with wp-graphql-woocommerce disabled
I need the woocommerce aspect of things though so this isn’t a solution. It just seems to happen whenever wp-graphql-woocommerce is activated.
Any help with this would be hugely, hugely appreciated as I’ve been banging my head against a brick wall for a while now and I'm really starting to worry that this isn't going to work
Additional context
I have tried the following versions of wp-graphql / wp-graphql-woocommerce
wp-graphql - v1.12.2, v1.12.3, v1.13.0, v1.13.4, v1.13.7
wp-graphql-woocommerce - v12, v11.2, v10.7
Node Versions - v16.11.1, v18.12.1
I've tried with both Digital Ocean and AWS Lightsail servers - same outcome
And it just never seems to process the mediaItems. The strangest thing is that this did work in September, however lately it just flatly refuses to process the images whilst wp-graphql-woocommerce is activated
WPGraphQL Version
1.13.7
WordPress Version
6.1.1
PHP Version
8+
Additional enviornment details
Gatsby
wp-graphql-woocommerce (v12 master)
wp-gatsby (v2.3.3)
WooCommerce (7.2.2)
Please confirm that you have searched existing issues in the repo.
Please confirm that you have disabled ALL plugins except for WPGraphQL.
- [ ] Yes
- [X] My issue is with compatibility with a specific WordPress plugin, and I have listed all my installed plugins (and version info) above.