Update UUID fails with 404

When updating the UUID, I get the following error:

Code=404 "Proximity UUID characteristic not available"

This is with the current iOS-SDK checkout.

Any idea what I am doing wrong?

(Hardware revision D3.3)


Do you connect to the beacon first - it is required to change settings of the beacon. If you are doing that please let me know what firmware version you have installed.

Best regards,

Hi Marcin,

I think I found the problem. It was indeed a connection issue. I was connecting to the beacon, but apparently something went wrong. I think it had to do with ARC releasing the beacon memory.

Thanks for your support!

I got error while updating beacon UUID , i am using D2.1 and Estimote OS A1.9
error while writing New UUID Error Domain= Code=404 "Proximity UUID characteristic not available" UserInfo={NSLocalizedDescription=Proximity UUID characteristic not available} , Please help me to resolve this.

Nitesh, I had to make sure to connect to the beacon first. Are you sure you are connected? In my case it was caused by a weak link to the CBPeripheral object, which got released by ARC.

Hi Nitesh,did you solve the issue??? I am facing the same problem. This community guys are not giving to exact answers to our questions.

How so? Marcin's answered my question just fine. Again, make sure that you are connected to the beacon before setting the UUID. If you want exact answers, please state exact questions.

@Satya Swaroop, hi, Unc Inc is right, first we need to connect to the beacon
I just tell you the steps these will be helpful for you.

  1. add one more delegate in your viewController --> :UIViewController<ESTBeaconManagerDelegate,ESTBeaconDelegate ... like this . (i am talking about "ESTBeaconDelegate" to add)
  2. for example you want a specific beacon to change its UUID , take its value into one variable let's say ESTBeacon* beacon;
  3. now its interseting to know here .. do this --> beacon.delegate = self; [beacon connectToBeacon];

there are two delegates for ESTBeaconDelegate:

-(void)beaconConnectionDidSucceeded:(ESTBeacon *)beacon;
-(void)beaconConnectionDidFail:(ESTBeacon *)beacon withError:(NSError *)error;

  1. override beaconConnectionDidSucceeded , simply just call following beacon method into beaconConnectionDidSucceeded
  2. (void)writeBeaconProximityUUID:(NSString)pUUID withCompletion:(ESTStringCompletionBlock)completion; dont worry, this completion block is already defined --> typedef void(^ESTStringCompletionBlock)(NSString value, NSError* error); Example:

-(void)beaconConnectionDidSucceeded:(ESTBeacon *)beacon{
[beacon writeBeaconProximityUUID:@"Your new UUID" withCompletion: ^(NSString *value, NSError *error){
NSLog(@"Got error here: %@",[error description]);
NSLog(@"Congratulation! you've got sucessfully written UUID in beacon");


-(void)beaconConnectionDidFail:(ESTBeacon *)beacon withError:(NSError *)error{
NSLog(@"Got error here: %@",[error description]);

@Marcin Klimek, i have successfully written new UUID in beacon, but after changing how it is possible that it is detecting in "Estimote app" installed in android. and i can change its major and minor value from this app . This is my big concern about my beacons security.

Hi there,

@Satya, as Nitesh has already mentioned, you need to receive confirmation that you've succesfully connected to a Beacon before changing its UUID (beaconConnectionDidSucceeded).

@Nitesh, I've reported it to our devs. We'll soon be able to release an update with first security layer, stay tuned!