'Groove doesn't communicate' -- Narrowing down the problem

In Groove Support, we see a lot of issues that start off as "Groove doesn't communicate", that is, input from one person doesn't reach another person or computer. This covers a wide range of potential problems, and the first thing we try to do is narrow it down to particular elements or stages of that transfer. In today's post, I'm not going to go into specific problems and solutions, beyond a few links -- from this broad a starting point, they would be too many to cover. Instead, I'm going to try to explain how to identify the elements involved in an issue. I hope that this will help you find the specific solutions that matter to you, whether in the Microsoft Knowledge Base or elsewhere.

There are multiple Groove elements that affect whether a particular bit of data gets from one place to another, including the type of data, the network path, and the ability of the endpoints to determine the correct network path.

For an example, let's look at what happens when you make a change to a workspace. For now, we'll assume all members of the workspace run Groove on one computer. (If the members of your group use it on two or three computers apiece, don't worry; I'll get back to that.)

  • When you start Groove, your account announces that it is online. To do this, it connects to its default Groove relay server to register that it is active at this location. Your device (a Groove term for the computer running your account) also sends out a presence broadcast (using UDP 1211) on the local network for other local Groove installations.
  • Similarly, your account finds out who else is online. To do this, it contacts the Groove relay server of each contact configured in your Contacts list, and each member of your workspaces. It also broadcasts on UDP 1211 to request account presence information from local Groove devices.

These two steps determine presence awareness, so for each contact not on your local network, another person's awareness of your presence depends on both of you connecting to your assigned relay server, and your awareness of another's presence depends on both of you connecting to that account's assigned relay server. This presence communication continues while you are online in Groove, so if you change your phone number in your identity information, or if you go offline in a controlled manner (as opposed to your computer crashing, or some other uncontrolled event) those changes are also sent out to your relay server and on the local network.

In Groove Communications Manager (in the Options menu), presence messages are sorted under Miscellaneous Communications. You'll sometimes see small amounts of "stuck" data there, usually because you have a contact that has stopped using that Groove account.

  • For each online contact and each workspace member, Groove then attempts to open a connection for data. It starts with the connection type that will give the best performance (peer-to-peer over SSTP, on TCP 2492), and if that fails, drops down through other possible connection methods that aren't as efficient, but usually work through firewalls. If you can't connect peer-to-peer, your connection will go to the Groove relay server that the other account is using, and they will get your data from their relay server. Similarly, their connection will go to your account's assigned relay server, and you will get their data from your relay server.
  • When a change is made to the workspace, Groove sends that change to each workspace member, using the connections (or at least the connection type, if the original connection has timed out) that it previously established. If a member is offline, the change goes to the member's relay server and is queued there. Groove keeps track of the changes that members haven't received, so it can retransmit them, if necessary.

Note that in both presence and workspace communications, it is possible to have a data path in one direction, but not the other. Network failures, restrictive firewalls, and server failures may all affect one path, but not the other. It can be handy to know what relay servers are involved when looking communications problems. To find yours, open Communications Manager, click Network Settings, and then check the value for Relay Server URL. (If you have your account on more than one machine, or if your account is part of a managed domain and has been assigned a backup relay server, you will have multiple Relay Server URLs.)

And now for some complicating factors:

Multiple computers

Many Groove users use Groove on more than one computer. This is more robust in some ways -- it's automatic redundancy! -- but of course, data needs to be sent to more places, and that means that there are more things that can go wrong.

  • In presence awareness, multiple computers introduce the possibility of one computer having outdated account information. Usually, the instances of an account keep account information synchronized among them, but in certain situations, it can become out of date on one. For example, if you restore your account using an old backup file, it's possible to get into a state in which the presence information from that instance of the account is not considered authoritative. This can lead to appearing to be offline when you are online in Groove, or not being able to see who else in online, or not receiving some data on that computers. (See KB 922168 for details on this situation.)
  • A groove account on a computer that you don't use for three weeks or longer can also become unsynchronized with your other computers or with a particular workspace. (See Resolving synchronization problems and KB 913614 for more information.)

Messages

Instant messages (including workspace invitations!) are different from workspace data in three ways:

  • They do not have the built in robustness of workspace communications. The sender's Groove account will not automatically retransmit a message that you didn't receive. This means they are more vulnerable to network failures than workspace communications, and can be lost if they are in the receive or transmit queue when you run GrooveClean. Furthermore, to maintain storage space, your relay server periodically purges old queued data, and while workspace data is designed to recover from this automatically, messages do not. So if you do not log onto Groove for 30 days (or, if your account is part of a Groove domain, the period configured by the domain manager), you can potentially miss messages.
  • They are sent to only one destination.If you run your Groove account on multiple computers, a new Groove message is not sent to all of them. It is sent to one (with online instances, if any, preferred in the selection) and that instance of the account forwards the message to other instances of your account. This means that if you get into a state in which one of your computers doesn't know about another, you may see messages on one or the other, but not both. (See KB 917206 for an explanation of how you can get into this state.) If everything is working correctly, the messages in your Message History should match on all your computers from the point of the latest Groove installation.

I hope this is a useful overview of Groove data paths, how they work, and where they can fail.

Incidentally, if there’s any topic that you would like to see covered in this blog, please feel free to comment with suggestions! We want to provide relevant information to our readers.