Clear CloudConnector::Access data if the customer is no longer on OnlineCloudLicense
@nmilojevic1 started [discussion](https://gitlab.com/gitlab-org/gitlab/-/issues/471570#note_2001317337):
> is checking for `::License.current&.online_cloud_license?` necessary or even a good idea?
>
> As I pointed out in another thread ([source](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157432#note_1982825311 "Added unit primitive for generate AI commit message")), We will not sync data if the customer is not on an online cloud license, meaning AvailableService would use CloudConnector::MissingServiceData, and return false for all checks.
>
> However, there is an edge case where it could happen that the customer was on the online license, synced the data, and then downgraded back to a legacy license
> t's not the problem with the token, the customer will not have access, but the UI/UX will still be visible (duo_chat button and window)...even if the customer is no longer on an online cloud license, because we still have access_data, and they do not expire.
> I am fully supportive that we should not check for online cloud license all over the place, and we should update the docs.
>
Another possible problem can be that customer has outdated access data, like in https://gitlab.com/gitlab-org/gitlab/-/issues/473716+
> Hello,
>
> after Upgrade from v17.1.2 to v17.2.0, we can no longer see merge requests. If I click on the Merge Request, I see Error 500. On logfile I see:
>
> "exception.message": "undefined method \`allowed_for?' for nil:NilClass\\n\\n next true if generate_commit_message_data.allowed_for?( @user)\\n ... "exception.cause_class": "NoMethodError",
>
> Gitlab is self hostet on Ubuntu 22.04 as package gitlab-ee:17.2.0-ee.0
>
> What can we do?
>
> **Update/workaround** In the [comments there](https://gitlab.com/gitlab-org/gitlab/-/issues/473716#note_2010275661 "Error 500 on Merge Requests") is a provided workaround that resolved this issue:
>
> It sounds to me that they have outdated CloudConnector::Access data. The reason why is outdated, may be that they at some point were using online cloud license, and then switched/downgraded to legacy license. This has happened before, when a customer started trialing the Ultimate license. For trials, we do not use the online cloud license.
>
> Can we check if the customer is using legacy license? Are they using AI features at all? If that is the case, the workaround for this would be to delete obsolete CloudConnctor::Access data:
>
> ```ruby
> CloudConnector::Access.delete_all
> ```
>
> — [Comment](https://gitlab.com/gitlab-org/gitlab/-/issues/473716#note_2010275661 "Error 500 on Merge Requests") by @nmilojevic1
If we would like to address the edge case, we could delete access_data in the sync job if the customer is no longer on an online cloud license... and UI/UX would not be visible.
We also fixed the CC service to not return nil if data is not found in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160227
issue