valac --pkg gio-2.0 --pkg gee-1.0 dbus-test.vala dbus-test.vala:5.2-5.41: warning: method `org.freedesktop.NetworkManager.foo' never used public abstract HashMap foo() throws IOError; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ** (valac:12547): CRITICAL **: vala_gvariant_module_get_basic_type_info: assertion `signature != NULL' failed dbus-test.vala:5.18-5.37: error: GVariant deserialization of type `Gee.HashMap' is not supported public abstract HashMap foo() throws IOError; ^^^^^^^^^^^^^^^^^^^^ ** (valac:12547): CRITICAL **: vala_gvariant_module_get_basic_type_info: assertion `signature != NULL' failed dbus-test.vala:5.18-5.37: error: GVariant serialization of type `Gee.HashMap' is not supported public abstract HashMap foo() throws IOError; ^^^^^^^^^^^^^^^^^^^^ Compilation failed: 2 error(s), 1 warning(s) -----dbus-test.vala---- using Gee; [DBus (name = "org.freedesktop.NetworkManager")] interface org.freedesktop.NetworkManager : Object { public abstract HashMap foo() throws IOError; } HashMap bar() { return new HashMap(); } public static void main(string[] args) { org.freedesktop.NetworkManager nm = null; var loop = new MainLoop(); try { nm = Bus.get_proxy_sync (BusType.SYSTEM, "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager"); } catch (IOError e) { stderr.printf("%s\n", e.message); } bar(); loop.run(); }