Open selwynorren opened 3 years ago
I am now running Elementary OS 6 Stable and I am still having this same issue. I have a feeling I am not loading the caldav detail correct for this
I am using: https://www.google.com/calendar/dav/myusername/events
Is thsi correct, or should I be using something else to connect to my Google Workspace account?
@danrabbit AFAIK you are using Tasks with the Google backend - maybe you can help out?
Maybe the same issue that we have with Flatpaked mail? i tested the non-sandboxed version and it fails with:
MainWindow.vala:259: Unable to resolve the WebDAV uri from backend.
what i believe is expected since GTasks is not a webDAV, so the Google calDAV uri isn't supposed to work here.
I get the same Password not found
error with Nextcloud calDAV - when attempting to delete a task list, or change a task list color. Adding a new task works as expected.
I don't know if this is useful information, but the same calDAV setup in elementary Calendar allows me to change calendar colors and add/edit events with no problem, but clicking the delete button on calendars doesn't do anything.
I setup my google in the online accounts settings and also faced this issue.
https://github.com/elementary/tasks/issues/269 seems to be related.
@Marukesu I think you are right and we are dealing with a Flatpak issue here. Does the following reasoning make sense to you?
Some operations do work in Flatpak, because they are ultimately passed to the system EDS for synchronization (e.g. adding a task). However, there are a few operations which are backend specific and are not officially supported by EDS. Those operations fail, because they try to retrieve the backend credentials from within the Flatpak sandbox - which fails for the same reason as we encountered in Mail.
The operations not working within Flatpak are: Adding a task list, Removing a task list, Change a task list's name, Changing a task list's color. Of course this only applies for synchronized accounts - not the local one.
so after this last post I uninstalled the flatpak version of tasks and opted to build from source.
Now when I try and add a tasks to my Google Account I get the following error: Unable to resolve the WebDAV uri from backend.
In the terminal I get this error
** (io.elementary.tasks:10854): CRITICAL **: 21:07:43.863: MainWindow.vala:285: Unable to resolve the WebDAV uri from backend.
I also noticed that when compiling from source the app icon is missing.
Those operations fail, because they try to retrieve the backend credentials from within the Flatpak sandbox
Something i tried locally is providing a fallback to lookup_password_sync
that get the password from the system and save them on the sandbox. It's bassically e_source_credentials_provider_impl_password_lookup_sync
function, divided into two parts:
// on the host, in a daemon connected to DBus
public string lookup_credentials (string uid) throws Error {
string? password;
E.secret_store_lookup_sync (uid, out password, null);
if (password == null) {
throw new IOError.NOT_FOUND ("Password not found");
}
return password;
}
// inside the sandbox
public E.NamedParameters? get_credentials_from_host (E.Source source) throws Error {
var password = dbus_interface.lookup_credentials (source.uid);
var parameters = new E.NamedParameters ();
parameters.set (E.SOURCE_CREDENTIAL_PASSWORD, password);
return parameters;
}
So when we try to get the credential, we can do this:
E.NamedParameters credentials;
try {
credential_provider.lookup_password_sync (source, null, out credentials);
} catch (Error e) {
if (e is Error.NOT_FOUND && is_sandboxed ()) {
credentials = get_credentials_from_host (source);
credential_provider.store_sync (source, credentials, true); // so we only escape the sandbox only one time
} else {
throw e;
}
}
Now when I try and add a tasks to my Google Account I get the following error: Unable to resolve the WebDAV uri from backend.
@selwynorren as i said on my first comment, i believe that's expected because Google CalDAV API don't support tasks, right now, the only way to add a Google account to tasks is using evolution from apt.
@selwynorren as i said on my first comment, i believe that's expected because Google CalDAV API don't support tasks, right now, the only way to add a Google account to tasks is using evolution from apt.
Thanks, I never made the connection of what you were saying in your first comment. Such a pity, I have high hopes for Tasks and cant wait to see the Google Tasks API integrated (I see it is available) Not that I used Google Tasks all that often, however I do need a way to sync my task list between my various systems and my entire company is Google Workspace enabled, so it would have been nice.
I will try the evolution system and see how that works for me, I seem to recall not much success when I was using the daily builds.
Thanks everyone for their hard work
What Happened
I have Caldav successfully setup in the online account plug, so when launching tasks I try to add a new task in my Caldav account, however I get the following pop up message that creating a new task failed and the details how Password not found
The terminal output there shows
** (io.elementary.tasks:2): CRITICAL **: 10:56:48.089: MainWindow.vala:281: Password not found
Expected Behavior
Create a task using my caldav account as that is linked to Google
Steps to Reproduce
Add a caldav account to the online accounts setting launch tasks and try add a task using the Caldav account
Logs
As already provided
Platform Information
elementary OS 6 Early Access Built on Ubuntu 20.04.1 LTS Linux 5.8.0-63-generic