The following query:
```
# trying to use mwapi to get (license) categories of commons images
# see https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual/MWAPI
SELECT * WHERE {
BIND(wd:Q668563 as ?leinestr) # random item with picture
?leinestr wdt:P18 ?picture.
BIND(STRAFTER(str(?picture), "Special:FilePath/") AS ?filename)
BIND(CONCAT("File:", ?filename) AS ?file)
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:api "Categories".
bd:serviceParam wikibase:endpoint "commons.wikipedia.org".
bd:serviceParam mwapi:titles ?file. # throws IllegalArgumentException: Could not find binding for parameter titles
?cat wikibase:apiOutput mwapi:category.
}
}
```
results in the following error:
> …
> Caused by: java.lang.IllegalArgumentException: Could not find binding for parameter titles
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall.getRequestParams(MWApiServiceCall.java:152)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall.getHttpRequest(MWApiServiceCall.java:174)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall.access$000(MWApiServiceCall.java:57)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall$MultiSearchIterator.doSearchFromBinding(MWApiServiceCall.java:317)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall$MultiSearchIterator.doNextSearch(MWApiServiceCall.java:300)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall$MultiSearchIterator.<init>(MWApiServiceCall.java:262)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall.call(MWApiServiceCall.java:121)
> at org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceCall.call(MWApiServiceCall.java:56)
> at com.bigdata.bop.controller.ServiceCallJoin$ChunkTask$ServiceCallTask.doBigdataServiceCall(ServiceCallJoin.java:770)
If the optimizer is disabled via query hint, the query works (though it finds no results, but that’s another topic: T168877), so it looks like the optimizer reorders the query in such a way that the service doesn’t have access to the `?file` binding.