Why am I getting an Error Invalid Request 409 when trying to subscribe to Microsoft Graph for Presence?

Jul 0 Reputation points
2023-02-03T12:59:22.77+00:00

Executing a subscription to presence request for users with the SDK targeting the MS Graph API is resulting in an error:

409Graph service exception Error code: InvalidRequest

Throwable detail: com.microsoft.graph.http.GraphServiceException: Error code: InvalidRequest

Error message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

POST https://graph.microsoft.com/v1.0/subscriptions

SdkVersion : graph-java/v5.16.0

SdkVersion : graph-java/v5.16.0

[...]

400 : Bad Request

[...]

My code is:

        final Subscription subscriptionRequest = new Subscription();
        subscriptionRequest.changeType = ChangeType.UPDATED.toString();
        subscriptionRequest.notificationUrl = notificationsHost;
        subscriptionRequest.resource = "/communications/presences?$filter=id in ("+userIdsSb.toString()+")";

        	subscriptionRequest.clientState = subscribeToPresenceRequest.getClientState();
        }el
        subscriptionRequest.clientState = UUID.randomUUID().toString();
        
        subscriptionRequest.expirationDateTime = OffsetDateTime.now().plusHours(1);
            
        Subscription subscription = null;
        try {   	       	
             subscription = graphClient.subscriptions().buildRequest().post(subscriptionRequest);           
        	
        	response.setSubscribed(false);
        	failedIds.addAll(this.getFailedIds(e));
        	
        	log.error("Error while trying to execute subscribeToPresence. ", e);
        	
        	if(failedIds!=null && !failedIds.isEmpty()) {
        		
            	log.error("The ids {} failed during the subscription request ",failedIds);
        		response.setFailedIds(failedIds);
    		}
        	 
        }catch(Exception e) {
        	log.error("General Error while trying to execute subscribeToPresence. ", e);
        	
     		retur
        }
        

My subscription request includes the following values:

applicationId: null

changeType: UPDATED

clientState: 7fc6bf6b-6cc2-438d-a293-aa47539ad02a

creatorId: null

id: null

latestSupportedTlsVersion: null

lifecycleNotificationUrl: null

notificationQueryOptions: null

notificationUrl: https://myhost:port/graph/listen

notificationUrlAppId: null

oDataType: null

resource: /communications/presences?$filter=id in ('932b90ca-e5a4-42c7-a985-f4ddfc6d6715','6be2455d-63ac-4423-aa3e-7188fdbd5e73','41b3d168-5c28-4596-ba3b-d5c70a3c3967','8830a8bc-f882-4c13-b33a-7031423b5a24','ab548af7-d5a9-4388-9800-7668a20bb2b9')

expirationDateTime: 2023-02-02T16:41:11.737+02:00

includeResourceData: false

I saw this article regarding the beta version of the sdk https://learn.microsoft.com/en-us/graph/api/resources/subscription?view=graph-rest-1.0.

It indicates "Subscriptions to resources marked with an asterisk (*) are available on the /beta endpoint only." and presence is one of those resources. Is this related to my error?

I tried to use this version instead, but I still have the same Invalid request error.

Please advise.

Thank you,

Microsoft Graph
Microsoft Graph
A Microsoft programmability model that exposes REST APIs and client libraries to access data on Microsoft 365 services.
12,991 questions
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.